From 98d19db8e689d930d137147c9b31778a158039c6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 15 Dec 2024 01:27:29 +0000 Subject: [PATCH] deploy: 426343f3618249d1909df6a85633acaf6c1cdfac --- .buildinfo | 4 + .nojekyll | 0 .../oneapi.repo | 7 + .../fk3.4-v20220730.patch | 18 + _images/taup_curve.jpg | Bin 0 -> 37885 bytes _images/taup_path.jpg | Bin 0 -> 42601 bytes _images/taup_slowplot.jpg | Bin 0 -> 57290 bytes _images/taup_velplot.jpg | Bin 0 -> 67574 bytes _images/taup_wavefront.gif | Bin 0 -> 94681 bytes _images/taup_wavefront.jpg | Bin 0 -> 61108 bytes _images/taup_wavefront_ray20-time25.jpg | Bin 0 -> 71129 bytes _sources/anaconda/index.md | 192 ++ _sources/cps/index.md | 20 + _sources/cps/install.md | 105 + _sources/cps/intro.md | 55 + _sources/fk/index.md | 19 + _sources/fk/install.md | 68 + _sources/fk/intro.md | 66 + _sources/gcap3d/index.md | 20 + _sources/gcap3d/intro.md | 43 + _sources/index.md | 47 + _sources/intel-oneapi/index.md | 105 + _sources/java/index.md | 41 + _sources/obspy/index.md | 17 + _sources/obspy/install.md | 21 + _sources/obspy/instrument-response.md | 125 + _sources/obspy/intro.md | 55 + _sources/sod/index.md | 17 + _sources/sod/install.md | 45 + _sources/sod/intro.md | 72 + _sources/sod/recipe.md | 156 ++ _sources/taup/index.md | 17 + _sources/taup/install.md | 40 + _sources/taup/intro.md | 60 + _sources/taup/taup_curve.md | 87 + _sources/taup/taup_path.md | 87 + _sources/taup/taup_setsac.md | 59 + _sources/taup/taup_slowplot.md | 50 + _sources/taup/taup_table.md | 50 + _sources/taup/taup_time.md | 197 ++ _sources/taup/taup_velplot.md | 31 + _sources/taup/taup_wavefront.md | 128 + _sources/template/index.md | 17 + _sources/template/install.md | 18 + _sources/template/intro.md | 26 + _sources/template/style.md | 19 + _sources/utilities/distaz.md | 64 + _sources/utilities/saclst.md | 51 + _sphinx_design_static/design-tabs.js | 101 + _sphinx_design_static/sphinx-design.min.css | 1 + _static/basic.css | 925 +++++++ _static/check-solid.svg | 4 + _static/clipboard.min.js | 7 + _static/copy-button.svg | 5 + _static/copybutton.css | 94 + _static/copybutton.js | 248 ++ _static/copybutton_funcs.js | 73 + _static/design-tabs.js | 101 + _static/doctools.js | 156 ++ _static/documentation_options.js | 13 + _static/favicon.ico | Bin 0 -> 15406 bytes _static/file.png | Bin 0 -> 286 bytes _static/images/logo_binder.svg | 19 + _static/images/logo_colab.png | Bin 0 -> 7601 bytes _static/images/logo_deepnote.svg | 1 + _static/images/logo_jupyterhub.svg | 1 + _static/language_data.js | 199 ++ _static/locales/ar/LC_MESSAGES/booktheme.mo | Bin 0 -> 1541 bytes _static/locales/ar/LC_MESSAGES/booktheme.po | 75 + _static/locales/bg/LC_MESSAGES/booktheme.mo | Bin 0 -> 1708 bytes _static/locales/bg/LC_MESSAGES/booktheme.po | 75 + _static/locales/bn/LC_MESSAGES/booktheme.mo | Bin 0 -> 1646 bytes _static/locales/bn/LC_MESSAGES/booktheme.po | 63 + _static/locales/ca/LC_MESSAGES/booktheme.mo | Bin 0 -> 1246 bytes _static/locales/ca/LC_MESSAGES/booktheme.po | 66 + _static/locales/cs/LC_MESSAGES/booktheme.mo | Bin 0 -> 1405 bytes _static/locales/cs/LC_MESSAGES/booktheme.po | 75 + _static/locales/da/LC_MESSAGES/booktheme.mo | Bin 0 -> 1304 bytes _static/locales/da/LC_MESSAGES/booktheme.po | 75 + _static/locales/de/LC_MESSAGES/booktheme.mo | Bin 0 -> 1388 bytes _static/locales/de/LC_MESSAGES/booktheme.po | 75 + _static/locales/el/LC_MESSAGES/booktheme.mo | Bin 0 -> 1722 bytes _static/locales/el/LC_MESSAGES/booktheme.po | 75 + _static/locales/eo/LC_MESSAGES/booktheme.mo | Bin 0 -> 1337 bytes _static/locales/eo/LC_MESSAGES/booktheme.po | 75 + _static/locales/es/LC_MESSAGES/booktheme.mo | Bin 0 -> 1396 bytes _static/locales/es/LC_MESSAGES/booktheme.po | 75 + _static/locales/et/LC_MESSAGES/booktheme.mo | Bin 0 -> 1341 bytes _static/locales/et/LC_MESSAGES/booktheme.po | 75 + _static/locales/fi/LC_MESSAGES/booktheme.mo | Bin 0 -> 1368 bytes _static/locales/fi/LC_MESSAGES/booktheme.po | 75 + _static/locales/fr/LC_MESSAGES/booktheme.mo | Bin 0 -> 1412 bytes _static/locales/fr/LC_MESSAGES/booktheme.po | 75 + _static/locales/hr/LC_MESSAGES/booktheme.mo | Bin 0 -> 1402 bytes _static/locales/hr/LC_MESSAGES/booktheme.po | 75 + _static/locales/id/LC_MESSAGES/booktheme.mo | Bin 0 -> 1323 bytes _static/locales/id/LC_MESSAGES/booktheme.po | 75 + _static/locales/it/LC_MESSAGES/booktheme.mo | Bin 0 -> 1403 bytes _static/locales/it/LC_MESSAGES/booktheme.po | 75 + _static/locales/iw/LC_MESSAGES/booktheme.mo | Bin 0 -> 1445 bytes _static/locales/iw/LC_MESSAGES/booktheme.po | 75 + _static/locales/ja/LC_MESSAGES/booktheme.mo | Bin 0 -> 1471 bytes _static/locales/ja/LC_MESSAGES/booktheme.po | 75 + _static/locales/ko/LC_MESSAGES/booktheme.mo | Bin 0 -> 1375 bytes _static/locales/ko/LC_MESSAGES/booktheme.po | 75 + _static/locales/lt/LC_MESSAGES/booktheme.mo | Bin 0 -> 1413 bytes _static/locales/lt/LC_MESSAGES/booktheme.po | 75 + _static/locales/lv/LC_MESSAGES/booktheme.mo | Bin 0 -> 1404 bytes _static/locales/lv/LC_MESSAGES/booktheme.po | 75 + _static/locales/ml/LC_MESSAGES/booktheme.mo | Bin 0 -> 1883 bytes _static/locales/ml/LC_MESSAGES/booktheme.po | 66 + _static/locales/mr/LC_MESSAGES/booktheme.mo | Bin 0 -> 1674 bytes _static/locales/mr/LC_MESSAGES/booktheme.po | 66 + _static/locales/ms/LC_MESSAGES/booktheme.mo | Bin 0 -> 1213 bytes _static/locales/ms/LC_MESSAGES/booktheme.po | 66 + _static/locales/nl/LC_MESSAGES/booktheme.mo | Bin 0 -> 1356 bytes _static/locales/nl/LC_MESSAGES/booktheme.po | 75 + _static/locales/no/LC_MESSAGES/booktheme.mo | Bin 0 -> 1317 bytes _static/locales/no/LC_MESSAGES/booktheme.po | 75 + _static/locales/pl/LC_MESSAGES/booktheme.mo | Bin 0 -> 1371 bytes _static/locales/pl/LC_MESSAGES/booktheme.po | 75 + _static/locales/pt/LC_MESSAGES/booktheme.mo | Bin 0 -> 1364 bytes _static/locales/pt/LC_MESSAGES/booktheme.po | 75 + _static/locales/ro/LC_MESSAGES/booktheme.mo | Bin 0 -> 1390 bytes _static/locales/ro/LC_MESSAGES/booktheme.po | 75 + _static/locales/ru/LC_MESSAGES/booktheme.mo | Bin 0 -> 1722 bytes _static/locales/ru/LC_MESSAGES/booktheme.po | 75 + _static/locales/sk/LC_MESSAGES/booktheme.mo | Bin 0 -> 1393 bytes _static/locales/sk/LC_MESSAGES/booktheme.po | 75 + _static/locales/sl/LC_MESSAGES/booktheme.mo | Bin 0 -> 1374 bytes _static/locales/sl/LC_MESSAGES/booktheme.po | 75 + _static/locales/sr/LC_MESSAGES/booktheme.mo | Bin 0 -> 1679 bytes _static/locales/sr/LC_MESSAGES/booktheme.po | 75 + _static/locales/sv/LC_MESSAGES/booktheme.mo | Bin 0 -> 1365 bytes _static/locales/sv/LC_MESSAGES/booktheme.po | 75 + _static/locales/ta/LC_MESSAGES/booktheme.mo | Bin 0 -> 1928 bytes _static/locales/ta/LC_MESSAGES/booktheme.po | 66 + _static/locales/te/LC_MESSAGES/booktheme.mo | Bin 0 -> 1806 bytes _static/locales/te/LC_MESSAGES/booktheme.po | 66 + _static/locales/tg/LC_MESSAGES/booktheme.mo | Bin 0 -> 1628 bytes _static/locales/tg/LC_MESSAGES/booktheme.po | 75 + _static/locales/th/LC_MESSAGES/booktheme.mo | Bin 0 -> 1766 bytes _static/locales/th/LC_MESSAGES/booktheme.po | 75 + _static/locales/tl/LC_MESSAGES/booktheme.mo | Bin 0 -> 1273 bytes _static/locales/tl/LC_MESSAGES/booktheme.po | 66 + _static/locales/tr/LC_MESSAGES/booktheme.mo | Bin 0 -> 1373 bytes _static/locales/tr/LC_MESSAGES/booktheme.po | 75 + _static/locales/uk/LC_MESSAGES/booktheme.mo | Bin 0 -> 1681 bytes _static/locales/uk/LC_MESSAGES/booktheme.po | 75 + _static/locales/ur/LC_MESSAGES/booktheme.mo | Bin 0 -> 1462 bytes _static/locales/ur/LC_MESSAGES/booktheme.po | 66 + _static/locales/vi/LC_MESSAGES/booktheme.mo | Bin 0 -> 1431 bytes _static/locales/vi/LC_MESSAGES/booktheme.po | 75 + .../locales/zh_CN/LC_MESSAGES/booktheme.mo | Bin 0 -> 1310 bytes .../locales/zh_CN/LC_MESSAGES/booktheme.po | 75 + .../locales/zh_TW/LC_MESSAGES/booktheme.mo | Bin 0 -> 1341 bytes .../locales/zh_TW/LC_MESSAGES/booktheme.po | 75 + _static/minus.png | Bin 0 -> 90 bytes ...69c37c29e427902b24a333a5f9fcb2f0b3ac41.css | 2342 +++++++++++++++++ _static/play-solid.svg | 1 + _static/plus.png | Bin 0 -> 90 bytes _static/pygments.css | 152 ++ _static/sbt-webpack-macros.html | 11 + _static/scripts/bootstrap.js | 3 + _static/scripts/bootstrap.js.LICENSE.txt | 5 + _static/scripts/bootstrap.js.map | 1 + _static/scripts/pydata-sphinx-theme.js | 2 + _static/scripts/pydata-sphinx-theme.js.map | 1 + _static/scripts/sphinx-book-theme.js | 2 + _static/scripts/sphinx-book-theme.js.map | 1 + _static/searchtools.js | 620 +++++ _static/sphinx-design.min.css | 1 + _static/sphinx-thebe.css | 129 + _static/sphinx-thebe.js | 127 + _static/sphinx_highlight.js | 154 ++ _static/styles/bootstrap.css | 6 + _static/styles/bootstrap.css.map | 1 + _static/styles/pydata-sphinx-theme.css | 2 + _static/styles/pydata-sphinx-theme.css.map | 1 + _static/styles/sphinx-book-theme.css | 9 + _static/styles/sphinx-book-theme.css.map | 1 + _static/styles/theme.css | 2 + _static/togglebutton.css | 160 ++ _static/togglebutton.js | 187 ++ _static/vendor/fontawesome/6.5.2/LICENSE.txt | 165 ++ .../vendor/fontawesome/6.5.2/css/all.min.css | 5 + .../vendor/fontawesome/6.5.2/js/all.min.js | 2 + .../6.5.2/js/all.min.js.LICENSE.txt | 5 + .../6.5.2/webfonts/fa-brands-400.ttf | Bin 0 -> 209128 bytes .../6.5.2/webfonts/fa-brands-400.woff2 | Bin 0 -> 117852 bytes .../6.5.2/webfonts/fa-regular-400.ttf | Bin 0 -> 67860 bytes .../6.5.2/webfonts/fa-regular-400.woff2 | Bin 0 -> 25392 bytes .../6.5.2/webfonts/fa-solid-900.ttf | Bin 0 -> 420332 bytes .../6.5.2/webfonts/fa-solid-900.woff2 | Bin 0 -> 156400 bytes .../6.5.2/webfonts/fa-v4compatibility.ttf | Bin 0 -> 10832 bytes .../6.5.2/webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4792 bytes _static/webpack-macros.html | 31 + anaconda/index.html | 780 ++++++ cps/index.html | 584 ++++ cps/install/index.html | 677 +++++ cps/intro/index.html | 648 +++++ fk/index.html | 583 ++++ fk/install/index.html | 638 +++++ fk/intro/index.html | 665 +++++ gcap3d/index.html | 584 ++++ gcap3d/intro/index.html | 639 +++++ genindex/index.html | 464 ++++ index.html | 652 +++++ intel-oneapi/index.html | 652 +++++ java/index.html | 602 +++++ objects.inv | 8 + obspy/index.html | 582 ++++ obspy/install/index.html | 584 ++++ obspy/instrument-response/index.html | 770 ++++++ obspy/intro/index.html | 645 +++++ search/index.html | 476 ++++ searchindex.js | 1 + sod/index.html | 582 ++++ sod/install/index.html | 616 +++++ sod/intro/index.html | 664 +++++ sod/recipe/index.html | 741 ++++++ taup/index.html | 584 ++++ taup/install/index.html | 612 +++++ taup/intro/index.html | 658 +++++ taup/taup_curve/index.html | 668 +++++ taup/taup_path/index.html | 665 +++++ taup/taup_setsac/index.html | 648 +++++ taup/taup_slowplot/index.html | 634 +++++ taup/taup_table/index.html | 605 +++++ taup/taup_time/index.html | 774 ++++++ taup/taup_velplot/index.html | 586 +++++ taup/taup_wavefront/index.html | 692 +++++ template/index.html | 582 ++++ template/install/index.html | 594 +++++ template/intro/index.html | 616 +++++ template/style/index.html | 586 +++++ utilities/distaz/index.html | 656 +++++ utilities/saclst/index.html | 606 +++++ 238 files changed, 36290 insertions(+) create mode 100644 .buildinfo create mode 100644 .nojekyll create mode 100644 _downloads/1cc59bc70bd1979df63e50172685f49e/oneapi.repo create mode 100644 _downloads/358f8a6762fae43b5eed5dad1b72f08f/fk3.4-v20220730.patch create mode 100644 _images/taup_curve.jpg create mode 100644 _images/taup_path.jpg create mode 100644 _images/taup_slowplot.jpg create mode 100644 _images/taup_velplot.jpg create mode 100644 _images/taup_wavefront.gif create mode 100644 _images/taup_wavefront.jpg create mode 100644 _images/taup_wavefront_ray20-time25.jpg create mode 100644 _sources/anaconda/index.md create mode 100644 _sources/cps/index.md create mode 100644 _sources/cps/install.md create mode 100644 _sources/cps/intro.md create mode 100644 _sources/fk/index.md create mode 100644 _sources/fk/install.md create mode 100644 _sources/fk/intro.md create mode 100644 _sources/gcap3d/index.md create mode 100644 _sources/gcap3d/intro.md create mode 100644 _sources/index.md create mode 100644 _sources/intel-oneapi/index.md create mode 100644 _sources/java/index.md create mode 100644 _sources/obspy/index.md create mode 100644 _sources/obspy/install.md create mode 100644 _sources/obspy/instrument-response.md create mode 100644 _sources/obspy/intro.md create mode 100644 _sources/sod/index.md create mode 100644 _sources/sod/install.md create mode 100644 _sources/sod/intro.md create mode 100644 _sources/sod/recipe.md create mode 100644 _sources/taup/index.md create mode 100644 _sources/taup/install.md create mode 100644 _sources/taup/intro.md create mode 100644 _sources/taup/taup_curve.md create mode 100644 _sources/taup/taup_path.md create mode 100644 _sources/taup/taup_setsac.md create mode 100644 _sources/taup/taup_slowplot.md create mode 100644 _sources/taup/taup_table.md create mode 100644 _sources/taup/taup_time.md create mode 100644 _sources/taup/taup_velplot.md create mode 100644 _sources/taup/taup_wavefront.md create mode 100644 _sources/template/index.md create mode 100644 _sources/template/install.md create mode 100644 _sources/template/intro.md create mode 100644 _sources/template/style.md create mode 100644 _sources/utilities/distaz.md create mode 100644 _sources/utilities/saclst.md create mode 100644 _sphinx_design_static/design-tabs.js create mode 100644 _sphinx_design_static/sphinx-design.min.css create mode 100644 _static/basic.css create mode 100644 _static/check-solid.svg create mode 100644 _static/clipboard.min.js create mode 100644 _static/copy-button.svg create mode 100644 _static/copybutton.css create mode 100644 _static/copybutton.js create mode 100644 _static/copybutton_funcs.js create mode 100644 _static/design-tabs.js create mode 100644 _static/doctools.js create mode 100644 _static/documentation_options.js create mode 100644 _static/favicon.ico create mode 100644 _static/file.png create mode 100644 _static/images/logo_binder.svg create mode 100644 _static/images/logo_colab.png create mode 100644 _static/images/logo_deepnote.svg create mode 100644 _static/images/logo_jupyterhub.svg create mode 100644 _static/language_data.js create mode 100644 _static/locales/ar/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/ar/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/bg/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/bg/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/bn/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/bn/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/ca/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/ca/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/cs/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/cs/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/da/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/da/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/de/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/de/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/el/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/el/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/eo/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/eo/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/es/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/es/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/et/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/et/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/fi/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/fi/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/fr/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/fr/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/hr/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/hr/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/id/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/id/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/it/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/it/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/iw/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/iw/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/ja/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/ja/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/ko/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/ko/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/lt/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/lt/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/lv/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/lv/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/ml/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/ml/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/mr/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/mr/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/ms/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/ms/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/nl/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/nl/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/no/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/no/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/pl/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/pl/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/pt/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/pt/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/ro/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/ro/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/ru/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/ru/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/sk/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/sk/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/sl/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/sl/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/sr/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/sr/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/sv/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/sv/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/ta/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/ta/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/te/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/te/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/tg/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/tg/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/th/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/th/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/tl/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/tl/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/tr/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/tr/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/uk/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/uk/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/ur/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/ur/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/vi/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/vi/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/zh_CN/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/zh_CN/LC_MESSAGES/booktheme.po create mode 100644 _static/locales/zh_TW/LC_MESSAGES/booktheme.mo create mode 100644 _static/locales/zh_TW/LC_MESSAGES/booktheme.po create mode 100644 _static/minus.png create mode 100644 _static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css create mode 100644 _static/play-solid.svg create mode 100644 _static/plus.png create mode 100644 _static/pygments.css create mode 100644 _static/sbt-webpack-macros.html create mode 100644 _static/scripts/bootstrap.js create mode 100644 _static/scripts/bootstrap.js.LICENSE.txt create mode 100644 _static/scripts/bootstrap.js.map create mode 100644 _static/scripts/pydata-sphinx-theme.js create mode 100644 _static/scripts/pydata-sphinx-theme.js.map create mode 100644 _static/scripts/sphinx-book-theme.js create mode 100644 _static/scripts/sphinx-book-theme.js.map create mode 100644 _static/searchtools.js create mode 100644 _static/sphinx-design.min.css create mode 100644 _static/sphinx-thebe.css create mode 100644 _static/sphinx-thebe.js create mode 100644 _static/sphinx_highlight.js create mode 100644 _static/styles/bootstrap.css create mode 100644 _static/styles/bootstrap.css.map create mode 100644 _static/styles/pydata-sphinx-theme.css create mode 100644 _static/styles/pydata-sphinx-theme.css.map create mode 100644 _static/styles/sphinx-book-theme.css create mode 100644 _static/styles/sphinx-book-theme.css.map create mode 100644 _static/styles/theme.css create mode 100644 _static/togglebutton.css create mode 100644 _static/togglebutton.js create mode 100644 _static/vendor/fontawesome/6.5.2/LICENSE.txt create mode 100644 _static/vendor/fontawesome/6.5.2/css/all.min.css create mode 100644 _static/vendor/fontawesome/6.5.2/js/all.min.js create mode 100644 _static/vendor/fontawesome/6.5.2/js/all.min.js.LICENSE.txt create mode 100644 _static/vendor/fontawesome/6.5.2/webfonts/fa-brands-400.ttf create mode 100644 _static/vendor/fontawesome/6.5.2/webfonts/fa-brands-400.woff2 create mode 100644 _static/vendor/fontawesome/6.5.2/webfonts/fa-regular-400.ttf create mode 100644 _static/vendor/fontawesome/6.5.2/webfonts/fa-regular-400.woff2 create mode 100644 _static/vendor/fontawesome/6.5.2/webfonts/fa-solid-900.ttf create mode 100644 _static/vendor/fontawesome/6.5.2/webfonts/fa-solid-900.woff2 create mode 100644 _static/vendor/fontawesome/6.5.2/webfonts/fa-v4compatibility.ttf create mode 100644 _static/vendor/fontawesome/6.5.2/webfonts/fa-v4compatibility.woff2 create mode 100644 _static/webpack-macros.html create mode 100644 anaconda/index.html create mode 100644 cps/index.html create mode 100644 cps/install/index.html create mode 100644 cps/intro/index.html create mode 100644 fk/index.html create mode 100644 fk/install/index.html create mode 100644 fk/intro/index.html create mode 100644 gcap3d/index.html create mode 100644 gcap3d/intro/index.html create mode 100644 genindex/index.html create mode 100644 index.html create mode 100644 intel-oneapi/index.html create mode 100644 java/index.html create mode 100644 objects.inv create mode 100644 obspy/index.html create mode 100644 obspy/install/index.html create mode 100644 obspy/instrument-response/index.html create mode 100644 obspy/intro/index.html create mode 100644 search/index.html create mode 100644 searchindex.js create mode 100644 sod/index.html create mode 100644 sod/install/index.html create mode 100644 sod/intro/index.html create mode 100644 sod/recipe/index.html create mode 100644 taup/index.html create mode 100644 taup/install/index.html create mode 100644 taup/intro/index.html create mode 100644 taup/taup_curve/index.html create mode 100644 taup/taup_path/index.html create mode 100644 taup/taup_setsac/index.html create mode 100644 taup/taup_slowplot/index.html create mode 100644 taup/taup_table/index.html create mode 100644 taup/taup_time/index.html create mode 100644 taup/taup_velplot/index.html create mode 100644 taup/taup_wavefront/index.html create mode 100644 template/index.html create mode 100644 template/install/index.html create mode 100644 template/intro/index.html create mode 100644 template/style/index.html create mode 100644 utilities/distaz/index.html create mode 100644 utilities/saclst/index.html diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 00000000..b9762fd2 --- /dev/null +++ b/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 77dcd679843833c561d92e09c896dedc +tags: d77d1c0d9ca2f4c8421862c7c5a0d620 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/_downloads/1cc59bc70bd1979df63e50172685f49e/oneapi.repo b/_downloads/1cc59bc70bd1979df63e50172685f49e/oneapi.repo new file mode 100644 index 00000000..d854e3fd --- /dev/null +++ b/_downloads/1cc59bc70bd1979df63e50172685f49e/oneapi.repo @@ -0,0 +1,7 @@ +[oneAPI] +name=Intel(R) oneAPI repository +baseurl=https://yum.repos.intel.com/oneapi +enabled=1 +gpgcheck=1 +repo_gpgcheck=1 +gpgkey=https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ No newline at end of file diff --git a/_downloads/358f8a6762fae43b5eed5dad1b72f08f/fk3.4-v20220730.patch b/_downloads/358f8a6762fae43b5eed5dad1b72f08f/fk3.4-v20220730.patch new file mode 100644 index 00000000..5de29d66 --- /dev/null +++ b/_downloads/358f8a6762fae43b5eed5dad1b72f08f/fk3.4-v20220730.patch @@ -0,0 +1,18 @@ +diff --git a/Makefile b/Makefile +index 5676245..11aac94 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,9 +1,10 @@ ++FC=gfortran + optimize=-O +-FFLAGS=$(optimize) -ffpe-trap=overflow,invalid,denormal ++FFLAGS=$(optimize) -ffpe-trap=overflow,invalid,denormal -ffixed-line-length-none + CFLAGS=$(optimize) + #if SAC library has been installed, uncomment the next two lines +-#CFLAGS=$(optimize) -DSAC_LIB +-#SACLIB=-L$(SACHOME)/lib -lsac -lsacio ++CFLAGS=$(optimize) -DSAC_LIB ++SACLIB=-L$(SACHOME)/lib -lsac -lsacio + # + + SUBS = fft.o Complex.o sacio.o diff --git a/_images/taup_curve.jpg b/_images/taup_curve.jpg new file mode 100644 index 0000000000000000000000000000000000000000..84cd94d42aae0bb234f31ba2fbbb86b37606c449 GIT binary patch literal 37885 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ť$J^SzA03!8BUN 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 P|)q_7$kx(f`Qlk&gb8Vq+`Ntw~jLIs-z> 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 literal 0 HcmV?d00001 diff --git a/_images/taup_slowplot.jpg b/_images/taup_slowplot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..55324a4cb4015b0b70f6426d85e1d4a124bc82d6 GIT binary patch literal 57290 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 literal 0 HcmV?d00001 diff --git a/_images/taup_velplot.jpg b/_images/taup_velplot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4f34177c7a92db63cd0e45f4429fa5046a7dc17b GIT binary patch literal 67574 zcmdpf2RxS1_xST7dykTtkdU`vRIivSP^06@S$;Cnj+0UMy$ z{-Xq+)BrvBM-8w6oB#`Wu>n$mC?Ej-iGq+7pa7_DUsgaWU<%v@udRD3@C?WYLIHp9 z$_Ji7jsqP)Dfrg`IS#o1!G^$r*9FKuh&K3l4>Ad9f=t4B!g<19!}@9G2*u8hl9#W!|qkmkPgQ`c6i1b&OspCvl3xunM0-q=ob z-EN)D?@akob7QM8JI;0kmBM}?OYi#QHo5RX(f+p%Yp;XjV#(U5a#xm?@fui%@L4iN zOnGJRFD!GR{x<}}nY9cuNXN7MXn(%sThMFGZXCPb1>`(cGPm{$zvng%ivu3f&oa1g zd-ik(G4|icMb~KcLs4NEnI|)@REtDEkGAtOcJ|JeHgV0MlioxU4xf5t)G0%y$j+|+g&67TTK2i zkze$zQgC>l=HV_V1_vzmw9@=@YT$+k!wtfQN4qGPzkWQhtM$ z4FJC6>*v}{4E(2&jVEMaZqZMrySip00RPcmVB?8}R9NItv;iT7G;BNoGV)vQU7HY6 z#8%Sc$!fMu1T+&lDVZO|#3qVNOLp^V>(ttIViVfDS@%uoJ`HSOeSyto@5B?%WAf5c zZzBRyyRa!7fJKwEnGlO99w58iKC16%@kw9&lfGD!ZGPH|p;>P7h{%luNP$fo4>E@H z6Iab|o#T1(e!=|iIYQlyn{#}I2k$N=D8;QOSX$SOoX{uyP~zK-FhC}AdFRRX`8#l9 z(0pKga*SJG6AQpu_(d*$m>r1_fWOC8$pW>NTalZ0^iCS;yB#8{96cp7@=JC+eBS{J z4qMG3yIu!RkFR9Ma%>%(XQHnO6n@;wWMCNcOfF@h&qtcJbn_OXaqiLL5Ze_4HWAAU z2i^3Sm+kfA$!-+Ea6JS>BAF6zs#JE}jYh(?4!CBx8~yyu8ql)Nt;6oF!YFL&O={w>+k5awp9LL;`G zNbYa}3N;>y730Ncd-g^h6e6)KrctL>gNY&$ZxRoVghA{9A-ux3H4ANgHDeM`4zQ2# z$Bg(ym3n4PAE*zFeg2K&a}K#lXGy^52V}}gd~}fDZ~;8u+{YjdZD~J)FuX^ytpL_N z2~mk0sCqI;0#O(WDqzkJwQfcY}A%rvvzG%)rb3_RPdjebZes@2eD`- z_KPho7oR;S5eyDe!Gmj^rWCo0f|Q2oJ%Lq<-Kb5-)~UlneztzSE&Dp!+o>NSH-nfj zy+7wIos(prj%7D})y=1UP$C%Io?c*Pv9yfk7aiyxqNNS|Tps~|$5x58(X?~CvMF3P z_&_$~tX3WBm0UMuFyFWEto!ll6u~gw55oJ}QjO^)3T(z8BHpzdpBSAcag_T)WSOf; zIhLnp8}&<}$Yj(59=#};Rm#)W7;@du1GK2+n9H9<>WBKjK6qL-F%wI2P@)|i=J}q$ zg0e z6@kr|(Fs!04j<=<6Voe*rwX+JOsX-es+u1%?Fk}%9Axq(;$j<&U*hZ4-=eZ7!A1bS znBAzSnJnyb{(7d!`F+tl2-r&7LjGC+fY60lA!wN$3#p(3(&D;9YY#w%k|={1KRa4B zS((86eoqu^;7@JqX5QnuS1c^q9`nwbv>mhSfh7k6|DFJUJgRMS;F-x(Wgnlnj~!l7 zIcWvMbPs5IDw#F2B1M_rJz36IU{BO;U|$13np>FDex(Bdz{gkGwe`i8pofri0zHq37Jx5x}-9%7mk9FBZ z9_ArIb8J2#{olqYO(j(;^)l}?r%TunjcQ^!71-LG*pmtxfb>k8GJYX8KSgY&lZ{Ah zcCnVmy1aI9&aVD|%KR%e-QWc2S$IQde7c)j(}S}A>*SVq3l(9{Q+v|ffGXij!MsRt z1)pQlp16&`9uWvTMP?YpO479)Es+c=S0RIR7!|-cAYNY#s3Id zOI)^{wJgabQ0KEp6#p?6*rT>Iv~f#(+**k9ng!k-Z+l)+9+L@W6eVld>G@P9eXLXFf*{?2n?jWJSmX882^<I?X zzm0w^_K)yOYDh<~e+n?0FyV)lX(DyGa2gKU`nUAh4`wjfeIUY^rb?|xVqD&jQ-}@g zY5ZbLU^mBaD?NbX?MO5?yke1gO-v$km%u&>n_n$8_OX@N3A!aYj3 ztlRpMM)mVuXICh8;|a^%+DV2;O_i%$D`d>JiratUUk*o`Ns zCn7a{%1;XXWWf-mwu{xu4v#FX*FB|+rUBl^B+7kq!S%O?H2@%IX|z-_>6)BcNva}s z-QaN8kB4lX%J+3(YdeOVn>K8sf3TPUJd(pHqVtXKI^pb!U}^pcqx*zD{tgHo^~1_T zC~<{}{g-|N*z&GB%U}j5#}d6cdKHG~evpuOUES`!IDw7}_uhHIKNWsxSVCTVtbW+R zqsw+bPZ$hBc3~k}t%tj>wUe~-6D81f;YK{an*i2gl90R&e?3yg(d9hzh(Bf_oVBI2g|Fxr zi;TOZKpXNTuK&TCr!)A|Z-3_5Ze&3SPh_a|(4L9i%@5@v~2pZT~O=@CssJ_fK)XXNRAC8XLR0NZ*1CRd&-sf(6i1!Y_g z@cSMINLy4Tg)2hH>*xN~h7d^Q8HLekq7~g?XLn@yC;bI@a@YdqZYDW8wY%<6JQ%&Wk}EXHKBM`o zRZ(ch&F9%{3ySD56)ZE9p*{Hh0rY3yk0*tWrZ6S$j#&HGL;3j1`ILUTA__|x5*9r$ z_=JrWf2!uFE^NdBFhb`klhx@-(dO!BK55W+u-%CzZ^L%M-=156BuF*hax=)W3Mx;E zWkV?*_T+QEbB#m2)&qIhTKrqhL(V1k&MFNX-*=okjOR8UzWBT@X#oe%(C}6N3)?st zI|ar3a>)>ejqa+wBmOe}$zSz&0MNd<)=3Xtpy&s)sRag6Mh&b|3OaMT}BXK+-yU}uH&J;%0gFzIGZW_^ORKcN3+wm|a z07<2rkS4BnCPuneMmF&Ck)x)*M%96hgXau3RwS&f9Qd#h+3`nU)#hL(TUbnL<1dNr zdBf8V20_0VUP15w1KoAXTy_^b`zKu3!`lST_xQ$yC-8KJ6&lolC}ytt^^YztaRbG5 z^NSz5ZTwEjcp7A^L_{z0@X5Hm9{7{79{?90?ql#S+qUz1Nw{wDJM<3meDfv!v0|+< z*ZCIceD$9^P5?M=A5PdFk$+B{*zM!5*aNugq?$}3`2EnyDvTm+%lsSb&by`K>5A}` z(2tc4&(DAUt3egqh_xd&lB$iJsBEgN@f6sk0;4nARR6?$0B~9k2!yz$VYK zKRqyaLF#V!E%fc(zTZySlnmjn>%<vpSb~ zw&ppo`tC@6Ga~Yj_V4!4hdf9RL0ir;yA^=)WlzLG0r&*2Hmw_myo68fw&&k4jez7w zsr$C5Wo(4qjE%M0;HHXKf1lsk`mnlba*ek7GGwd>_cUp5tHbx%f8dCPmG`N#PhL_{ zSmoqLfgd9G2U#-hhboO*5NmomXrl7k%Hd?yvS0|la-iurU$>aGjj!)l5q=wg+ckGQt=GUGOjbZDaJMAOx@Dr0 ze!jA^!5!rIimS;$?-uW6hafBZjmm*lsLd3A){y~38PRNx-|@OPn6t|CiE}OHhCQ6y zY^eRt->){qwT#!LVJSJs0k zTIURgWzO2X-jV1~V97TrMoCMhaJ?RkUW}uIt7b1yBt|>Uxx2cjEt0<+j{zeEHd_+V|;%yHpN?Ah(-Sn1V=7%M9VEcBE-WFVLi^iR9DqFSt*uI|i8;E|v(plX1IO)%ZHap|&w~1~*+ADI zu^;D1Rn^p}hT;sbF2$FAsg5f$gfHovwS6#;_$2sZV2#y+J)4M@Olx$YV34u4lTr9< z(0*Kr`dzPl!~S{}aw{)K{f_wnu<#odeHYcyVXAIv`2&};{cJUS7q6BJzrc3ktS%{h z_+~vGa=J5Rs2mdp-<_GPit;8|~ zzTW{3og!!_01rAY$sm5zib<3}%~mnou02vb{CfZT=WT?^(T|g(yus)Hf?H#ow5u5a zgbY6qnWIQ(pQvn|gAa?4MVSNsCvGEOS-~xjZLq!9USxN_v_X`QsimF-G{e{LFJ zN+o#%OSCXl!iXnThX9vy0f2fmqtUXlVwW&&B|AndzL-nB&@Z0?q;3 zDY{d=&y!?++{xXga3DlI%A+#FZBPI1vyD%{fhk~-8v_`-MPnqP=^86R&e?YN{>lEc z&;z2RcvgXCwaULUD#OwQLgoxFEuYP>p5O8m_r(1efR3P~gc&Cd(mdl!Mx(yc%;&jo zr?Zl(lPbA*IUH2kKlwoz6(U@Co|*^G3~7Hj@vEE%OoJ|TQgyH?-TT!-;6BQM^^--j zI#-vLcbCTYrGX;09VbZ7`NfKQZVh3DvHo%RIO5JR=4?xc&wflzy&;pu6PyzbA2}?X za)z1;9hZavu2Um_qZOc6#J)siH0R$so}L{V zzX^bw57jq(vtL>GhJ%OQfBu8&kR1!{o$mDd$M)eG3XSvIc_6jt#LxY?Jppsu<)3+; z_?nlv_btpa_ra1t_a4aj^>zF%4%YM32R}jdbhh!@PX4#O89e-nXJf$~t+Ei992kY^ zdN6k=c3Y{DL|x=)6356c*)tCfy*1pO zKp`IJd7K}E=N5IR>zN9+vnvQx@2)tpo$N2|8kifxB=^*Xr`@~>Z;0}=>o&QAAJ9>* zzl=*^+KYBQdI3XVJ0;TJ8aU9~wxC>i+r=b801sWdJed2=;SVa~SYubtfLCF(d^rQ# zY5!gm07yMKcz}X?-G}#MC+hMcytmNXa}+q~Ky=fy__|y82e`UEq^4iuW682{^t!o7!9 z*FyyYs}trdz4bhn-|POw97yxrEQtk|gX_Pv6M$JzOrUaac$Omf=jIevf-OP+(l6c0 zjA)8sWxA-wquIfV`IB-(9b=dze{Uy1BGR?CXTCVEns~h3-LHb7y#xM-OAGIN!5YiG zzt#i$r%up*uGaJDH`@MkfY>OEZS0Nch4R8NZc%)<6Fa5b2W&1GX*ap{1c`tr zIT-AMFCN#u#dmlAx!_$cFe@h8$iH>wwzBs>Bo*#ioYlFoy`sL$2^RWKb49vqT7J&) z^qXl1vyVTSn!p%3VA@YF*r>7ha~t>iP`;;uOUOGpD;w!hHNGqTR=_`LH~{X1Ypl+g zRw{qE9V!4@>^(57sx6jco*Rh26iPRWYghFAQ|+ho-|XMUj!)o^T)_18GbrwP-(B># zHWyrkepQR7#T`8?tZg^5M}$2AuyRPnc@^#QxSgvb!5H(3nuzYjahh4D0@ib#(UpO{ ztrL7h!|PaBf!*Whfxq|MHo2nTL|l!CLQ|>ejsO=-5BWjoVY|`)Wa&XNqAfC`et8nk zZUsMao}q5@F57?WivYNuJ53dQM@j$v@=xC6gH?zv*8gPRK@tdAe${?89%na}Mi2Sz z-=MILz_V9<{TDNAC` z;kl11Ik_$|$KNa~!w_c4bbMst{EDSo6rRKt1`h*nI+lC)BL9Axy-n9~4LNklX>F>8 z@DvOuSnxk@XaN9Ev)b2B2w(S5h1yrez&|T7aBV(g zd5wxi`hiH9l~36J>ac*7I_8u8pp&Spn>?N5uo=Ym>e5CFpp$F0KE22-AY*#fUWTcg z|J1tvE2Gx1o!9*~Ch&Ei{@$6~;6Y74#4g&I==nxVDBN`evG2Fpw{>rQ;xLGxbp5e$svWj}G?+d+_K?h$UBmblPV`)qUb@ zBK{lp2AE#qig}psmC;I`dRO3JzW)uigb=8(7Zwn~BNQFT6ILy^68s1B5Kc?7qO*Y5 z{kM5yruW^H_VpT+!72ucrjA?3+=iA*p|ACUiGf~<&I5L!@xbBjLf&MFs zg!D-M-8o0bZgSg0Z0deb{h!@906>0f*qNFzYn%Uu3J0cyFyMaeo%t;PQCR9am2W!L zbrz9-xH+s;+XkP2;dM9&Cy}Lf#d=oX>5A#uny>vEE2mpGtnOnON;N-bgw=oRp6hni z92MQIA%n{uENhFraiqCV?tYfZCRuKtjGz@j3cng|5ZGWsY06-DHS6wQ-(;K|W}*`A zXnb+~QJMq8=wW*GqetHE+2AJS%X&NsJp>Aq3s&K#Y^~O)<_nu$o2zDw$jCxT@Eo{1 zA34oB%wQ~y9+xOV+;4@fPP{_?Ul8jLtl453W4)BO`f~@>yyE|(m+CjQ#}d@4loA? zOxh3o@X=Vv<|mK35BcQLF1Ni9kAl^=r@h7-M`(Wd!3@9KF^9bzhDn|9Vzg6m_}g+) zIjPqVWPTDPWo}AU@4r4*-+92CdcU)E*mrl}^g}K3L)WX33hYV_`2@s)LU?ETwiCIi z__YS?_p0}C2fyl4JWzD-Yus@5o^bij6D0ZKinxc)i1v$s@W3kk{nwQlwwYOmeGWD# zfJlOLpbjWXxiU+QYYwJi;Aic>mRUc^apx(bwW>Aw7ls| z&7bTw!r6Gc$Z*?Co$Ev8`cc#ahJ?djGO29(@L=8PBgVQI&0+JgAE|?3M6xf8t24Dy zbz;YJe~gA@zF17F&@Srm;n7VV&FBe_uItCk?;~k{J@h3va6v4B*m9UAUe`?3|3|`y zhY_W-G~RxU3r@(p9U$;yGMIsi$BAbMpXbv}!XOqd(YWYvcLUa&oO3!Wt6!Qh5JoP* ze;Q zt++$qa~Pdiv{6e?exBUv_9p`d*9yYLAd|a`w>HjX?*08i&xMl?*AGZu>-!VV5CRQK zr2?|ly)UnChybIh+Y%l6Ss000nVa>)_P=^-d2hi)6{O^Ddgko^X5YTXM$*zg%vS*L zh;!7fZ_cBc?Ir%x5Q6VIV%MV4fpslXw|9H%u+bUrx&g6f@_O%Yof?Ho6Wm__U!I=<^Ra%NQCAD-~W)cZKHtjVBE+ zpYz02$Nm)wNiY1+OPkA0BgII5#yt1Xz77zQO=7(Y zTXq}&4N0I$Ap8qcvlIgRH?d*e*OLA*fluu-wtnpBb0|DLa{9wxo-OfeD%jX~gU7X= zMhoa(JLIE{=vZ12wbE;Xzj_H5D$eG!cximB8x?X;A4G2Bp|9tkY}-gTJ!HD%Q|NLt zCj3ud_&d9jn`hje#8|Y+?)PqlPQ0DOy(0S^N!T^}EmDWR?uM>a=)rfl=2zcR*dq|S z*15zF1^BxA=F+g!rL7!?zbR7QpZ+RE*znJ$5KMlp{j)lk_U{S9s>T-QLq|VIU~_A; z^4jm6CWn^0>T~VqZXz8w0Vo3c+}AsiR2L5W3>FI?-#UGF#viruaaFZ9>b;7GwDEBX z@XW~0@9;(r5C0l^>nqypout185cQ?Aq!$$rG{L|7WmtHcxV+e~l|SqKPr#FS1q77; zq+FFFUq|Acd-8r=%-t0FdSiN%9%B1fXn%iJ2C(GvlG$f}{iCrCQU6R6O%!VHp3j7A zinYHRlj5j^!zo!%gq%DMdkgN2xjGH+WWg#y!PA_MzB9TM1KR`2tGwW z5RBmZrpo0PY12@3}xW9xquJ>>jA8m!b? zh1g*2dFAu~%b=FdZdo6#3rWEidow1eO>a-JHwkQ){obCB2$NyCsJ863H}JW33}#q@ z^v$o5teL;xO#ptvI(}j|2!3^E&B=8)%sR{ETeBNPst#GwkyOcH=>ak7p=p z7lDbX$s`9oM7x3J;x5{a<>RS<>8)6SBmHya0=v;8Uom++Q)j^U4Yq%nfjLNlIlJOQ znrEGWVc2infbWy=Mh|u|+r-5SKyv|j4SWjKA(9;OJBJs+t;60qT{1OCjH#VeNF+<> zCRj*z?J13$!`xQH)0iUO0xT85-8ED2Baz|{3VDUJmsi=SCh+Hwp%frbA4>7b4UE~z zU_H8zUpH$D?nZ9^X6&8C?N5JVt!->~)mN3Sh2l4!;E6WRH|NuIYqent!qfG{GEXad zd;vyeIG5(Hco~7SqPy)&#&omzUbg!yJ=va{t~*3ez0`m3QRD5&pdAcWL`opsUHd!X zQAN$n3qyuQ&=`a{^l9Pg1y}R&{+tEyh&c3z9&yXF!*;cuS8sm(%o0p}fb#lb#xE^H z6N2XrnGC1$OMC@(F?-sWr%Or@rU^j>C|4=W*-hO4aA+3kvwr-@*Bu=A>2$K2Vjxj) z_Z|AV4!d0Tql)#bt4(r8P8VMQ_*Z*Ltm~C=> z)>PHp^xcdzW~7!gF0Ff$oD5KK0g^(yium5ng&Bn8IyBfi*%#DZjbQDPUglXT%|vuU z;l4Vb&L)toperynj!j-lQ8GvsAD7zUQ@H-Zf_=4tGh*?4 za01P(*SCC(kGJ7r<#iKXuU%YoJc6-$U7w9`-@`$y)l#t8ADs%-Y>KF*4G|ZPz3i! zk@2h4Os(+US+9s5SoWJ+{uBu*ogiaQ@0ne|JbyfYJ#~7X49nKeIUl}q43jzQ&U#4B z*>lVo;V=exhsi$!kRrV?SAb7Ax^9aUDY?$BT{(<87Wgk$B(VVqJRBSX8UhMDJlqik zcmM+aYZc%K4gnjxf+aRC9wjr2ti1MB3km_b=lCbivI^>%nY*173Q$yfsB@e8LR4xR z)kR%bVgE?*pRpi=|EC4Q4@?i1NIe`&)O@Ae8D^a&tK9cm?B%grO=1Sicp{3yB$8iU zg3p;fZWgX$ha0%ZUz6${q5S1LKuK_!1V1;OtFPON(U|hy^1F#NhD3F5)H1~nv^p_a zzVQp!gPyMpU_PhsG{u^EHAi<^RLD${mVExDa!a+lo6s>y;fI}cd}Wahbo}DJo}46h zv3JjK2CaX2mRoW&>Y_D^dO%0%3NTEdS4Y~p{<_fG#Pd0*b)IuT(%BfNIPERpROd6DY zwgAx+3C_ZDwdLlQGCEgLm>;C5e#efl$Tsn7I8t+|&ftQqlvSt+B&+6jP0;NU z2SX$xizMG?S~uNBFh(dMJN0Jr++s@Xnec+)mlG;uxbxO@-i%Z?rl>F%b4bJ#M6X5m zgnAe&3}bQ@oMfQ(?6!H)hF^vD;B*qI_i}WBCldVEyQ=10!!MF6I_c%;)gG{3YdOhF9f+VjrlJi`(+>7L;Z!Yuroe$rhZxy=t^C6ZpG9JJSx#&tG&G^3T=_eg`g_+FQ~lUsF{qJg}n;r<hHUBzk#i$s z_#N{y3npDps=~!s#&o{Idk+2 zy+R*1CijKhm7HganW0y!d_$VWvjs(k@$ZJ-jBis|!9=hIZ^yKSZ@qXZ-AX)S(k~yy zkMGO5E|kpD}EDh1Dm$KPWJDk8qHcD=3G`qAinU-Q9(_)bTC z2bh)LA$(!(4WYn!EFZio3di+w%|qjg(<5SaNxJpi+q^S$DAs-QuZUj?+<9w^d`i!$ zr{~t>l{unx2|~iLb&_-U1oh5(XRuZTSF}!D!c3(eAV_RU$gIS=h_XIw#%N@Ms^*IV zk83RXMR?4tG1FIwp8Lak^c+)($h!4bXY80A8f{K|{POgRd6MgWbmbj7?}Fiisp`+g z)d1!YtGxEO`1knrEUz&8WM<;9)y)lg>8KRBUz(*=wY@xjN*L`%eNs+|2O1%*!ZD*u zKA31p6Ker#3ds~6Ri2OE(z z2q{Oq?><-^-Ri9hI8EXT7y&N0p%U14?nF_Xu!0n=+EAgB+#phVbf(s-F_wr+C`4RB z9!}mLSUn=1RURPmnNEY**tg`i&UGp?t`AIc-u*g4A^KkS_^Co4hz$o>Q5nb@*xyZd zy%}Yzlg~+dA%Lwe#cg=Ez%4`mMy;qslToay4v(@wE?1H5JF zIL+8*vhSYCDM$s@$zm0@M_A8aIm3WUO4;4C690zfy~^y-)PK6xH@-9XL}6u^^&QaeuLbnQ+YaW;%n%eWdl(In}}={ zv&S9IG^!*woZfwk&M)M@$s$v$I>`C#rr9kG=9~p&i-MpE@_S_~4qYCr6*;G*Svvem zN24G3wdY6Y=P9YpS(4v8BU3BuG0oYMMAJce-LByFWHs(14V7YqMjs=j+u^3ODe^fQ zPLF^yNi;+sDNO1m-v~>fV0vKFvwu9>KYF^4RFggY-0Q!(PK|rEm`7F;)~np%_#k#V zVpxFSFG;ZteqwlBvih(XC22bU_TOId&1Xvjl+{)m`&IiL;5V;!@Y%+Jm>x7vpju~x zn4WP1!{EXA-pd3G8@3Qt6SokBSPM@#)#yLXr@)9J@z|I0$DD_R&wL4%y5K7rMW}4s zRn+u5mkpTC=E3cx3F0krv*r<_uGAA`MrKGe&?ilRRdV39ow|G;G5vrmwxgcT_Y&L1 zzb(c_zCSO@0mW@#2)&wK`RLx?w(HAmwkq8~44j=-g|_Y=JjLF;z*C_N7!mnv70s(V z+E)8sQ8GcdLil3nhPM38^~B=BqZ-#*!qfBzHQDdto`R(za|z&N+~030wT+(EUpJ#R zF+ZY@oi&p5?r10bZ2XGc*A%KpWV7^1qAiO(qH|q^4|~;3I01Ddm9NYxQKjF3OVx|0 zfkbD0meARdjkMb32yv+>o+mLUJ;;Caf8u&bY$Lk2N~EJntn2qK5is4qUYoogym{%5AmDaX>47$ul)2oL%4#zK z`4N{-e*#|cx+fiURl)5#LCl>IL{ zVbUz?yA-L^^tr?utRAsIzoGseAh+>-n`>V)l$xnf*Pqs^YJMsigRvq!s4$WBLf{(> zHEVa$muDzba`6Mgy+1@OK2IB3r%ihE9q?v2zndjv;{Crg|*C9ZN3b=fg| z&WTUPz951oUrQ#iYXhlLKd_KE^39=fc8PZsOfVIDsvz4xKm=hWX7QCc#vS}7Ihumb zYq$;*zXLQp_Py9=UL`~H#HswKVrx;ahkhVOaHv$9ve7vs)tJr~`hhn895i4ppvQ0S za-=XQRbUh64sMLQ%sk0L$xMBM(_1R^1TO>I9cmO5F#yw*FXE>=hTkxPo?olZ}oy&7K7XuC%!6vgEoadORvLz6}7JPm-7V~t5qkHD7T&5WUhJ@-_{g6;7w>qL%vJ1L1cm(IuQ;#qd1sO5Pk2Nz zh)di((eOUOXUKn+DErcYmywfj?@}mLSk-8K65+yvj8Z5tnVG!B!L=sDfWXHs>a#5qFn!3 zJqmEf0_~e*h&dUVFHqrIo|(s9VdM<WaltF}o_D`M z+YhECXPyia^$sC;%xgM`=)`Z$lw64;xT1KpqxcHwoaU}_^&@lta1 zkF``^Rg}ZDE3_{`AvYS&(-#mN15S92ZxEc7 z@JBIyUUlVK9~YKbEV;?-k;p|gs2sc>{UKDYM<@){Y~QOX@}1}}ic=HSD2-bo)vhVUayuHoV$E9Rpie@g3mGFx2|k_)h!*IZm@&G5gWx4_RbRWqrBU*~u)} zF{d9jip$E&N17wR(aq(VKfWyV+JtQ`7?P%D?P#CzLH)h@nPf`FuwUbze zF^poD}r7r??rw!l8JUW>^ zq@rBlbvdh`Z+*_%u%_@yVr^LyjyQx4u!5-E(Z!nA5V9JKS1CqKBqS^-Kwf0GQ*)-* zYTW6NM?M(@*e)n3551N%oL^mWkxcUIWNW`~q+`g5BX=sB%JJBuAIgsY1&6O-$3?xe*7QC$*xC_7rF!{EmDyc%--BnITI}g>81SAYi>wX*Og& zAtk0TQ|Y23Uk!f;mxF~Prou6`u^I-G%Wm?K*GB@fKBUA-w4W(>!f+#ZSuZ(lYy%aK zw{(f#qVGgx zop!%3PT$`Ml2E_(Mt0!T1uI%|Lx4U7%j4UPlaCEqNwW%&iyDp~D}-IEvTk7UU^D>e z8vY} zy=zrgN4utagE9Ep>nz2!lDnss!5`%Y{7J>sATUj&JNpUB-x_gpsFPF({&39&Pqe3la~?*Cxc{jt)oJPhq3<1 zpLGMZNGV$q?tBNRz91!}KtA1hLRacQf*+Hd=`Sb|V2m&|h4H3&>JoH(wAmdgFE-VU z;(J&TnP+ljQfQovEUd~d<<(on1ldbdw)DK9Hc4_rRScA+@pLu$TD!hx$7hcj*_ACT1~ zc!XX&9D8!VJum$5&zD+E7%G^Hn?$Tz}Q%EJbd+pTR zkppTD^$Ov4U`d`=>G-#jC@s%^0XGO4LKuP=iIoG%b9@hNb5z7g87!bZ%mr@8JQU{k zT+8GXq~J$&9)8zi4T(#oWe43YTRCwwadFVbA3vR|@Esty>4H;9-ru8IbK!P{Xlm7_ zgppuF%wyy=Pmydk#F3uT*p3tabobqvavznLx;d>wm4k%PMvL^gI;01-Ca14=7 z&y3OKsnf$J1^S~~23^!8SLI_u-8scbF0PPF9pnJ1IXX)@TKSDA3AsG9gl|;29Vdv3 zL`qh{u-vBA7fjV~{GC7_Q_GO6{{CU~-Di#v*%*e%`UfvxyhI(r?^uw%69+0Ili;Hc)cvniX-exbeA%X91y#op ztYTeRy=fV$^c7pgD~JO<=6$cyZhmyk40P5VOnN#)&ZyV@c>dz5CG{UXZb^b5^0ss@y2xo}5al6jL4;7;oQ-YzXrQs}9w#9ahMI-Ueu?=in4 zGM*nIli`=^#njp^%R70C$EPV!N2Yuu-LY0MBQV)h;$Rt4UUMTribRiyJA>D<{Kl~r$vfD8|+ zJ}fse1ni5_Ub^Q8l+?dip!J;w_gv!1>JQLvEPs4tN^E0Ai;{4KTG^Oy#(fM4j`*N2 zlIGzf7}uhXiGL^$)jJREz`vq;W z__6-9wzmbSPw>SJ7b-5o#W0W?%CaAyTA|Z2+UZ$uPIxtYgt!n8Q9lojG=|p6i1ys_wOx9-JwXY=Xu zT;*yJPb_~_5$!e+`6|jdaM&U#Omq=34;*SQTlctjxHUQ<8mt72EXoIzRIxS*2yRR$ zO3zVgj}lB1m}sJz^PvU2cM8syka(&pK96lo;;V5daV3|aZF73ifX`Sd6@`h9=Zl&W z`4Rlj?i!oa#)i|r15M=F>Dc#}sGS@+&k&yZQYAM);CS;ZNvsAITf6&8ph_IvWnmZZ zU^yb>JN2UA#5Z5H`8~*~_5^Bn|H&_7-Mcj}Y%X%z!x2MR3s=$^JvY^@2O<8kv^j^p0z@6;)M8+XbcUX)vfkYk^fBZhcZ*&PMF^x}L=+&_p@(koF-DM*NTO+~v*klbIyb5m)< z+i&~(=-&6eS5jB@J4457Tq3CUx{ zt9+Ej+4^T?ZI$xZ1*bc;40eX|U3cCqF8TqiDZ8KhecJ36H!{&Jj6D-M?5{$wFV;k!V^{w${|WYBHBS_>{`HPK1gND zJ|D0maicCEwn^UU4$<93r#np3!@N%qs5;6V8l>q(?<}TCyq>W{5>eskDC-+80WMzl z$6C{&RWLcGMl7iI83liJ(b#tp3r^B_Q*Cdttq>~-DB}W)en{fld{yl!#!6Es8dOTg zqnw^>@=^~IW+hVl3@BKh%zb@_2i32Tj!sQN(O+-`F{a#yl1~@|j!0#GV-DGOzOr9L z>Fg`YPl+FS$gOm}hRv+bB+E>bGLm`B>urvCCPK&9gOX2pOQN4}yGty-cxPo5>Xg_% zD4lLsbEc!b{ldImsDKWsxSkN}b;dd`T}*(72WHSSBTwN^6vd0aAE2EV#s|XX38(x_ z^U)YJr?$Rls4l z0D>C731iTe&7xlV@GR|;{*;vH zo420sEVacPeX5oZuW`PS2(;C<@TJ68Ja1BE;ERZ01vCAkeinY(Ln-reR>msU9TEX^ zRKa1{lVLY9`f6SUg}N@6kAbLalDhUhMGEeNX@g46RH)ekeNDKsWc4dA z1Z*9Y*V8mYb}(ImPjtQ4oTsUKzBcl@OW6LfXBFB z(*|8(EY||dyj73J%NSf_nPx2GOv5Tx!nmT!xF{k?F@Mw>A;!H%Fn$v0iEso?%cfas zz?}+e)q~63$gV;(^ZIJ)n_EOH;<@+{f{9oiyl;CR&D85X_IZXQr_D?pd9`4=CqL4y zB&e=B#_t_+tDq>QpQa)HZoAlogx1pa`5|7~w?47C<})-%)%+7iRFM8*V-!NF04 zM15K>GrDqy`y1jb1KvGls}JD>GA=Vnojm=f+EXvi>vk~<-o*Q5MYSt=Plp*#(Oneq zoE3RH3RC||G(N#tUeC|QkAmyE-~5m}E)VMBa>-rFQL{!Pza2x%NGCf?iPKUKHCDUp zXMIL=eFeiaibr%wux?KUW!WJ$d1vxh=w&WOr^fDgUQ3%1dMOvSdbY%P#qo?>E(O_$ z0V;}(Ua+%HvFl__vwz~ZO2}qF`VLqvikDKC(xDE^f@dMr{O#q<;<3Kf)_2Lgo<9w> zQ7{vy(4J?y>*dcA?^8s7nF?!tMk1U)nps%t7&*(7x>NVNv!v2Gg>s$R!I*IR+lxd< z*gVvX;Tj&#Z_~*U}kvumD*4pz~-^5Afi{%L%HB`o%F$}XY;}=N}fXb&y%sP z9<9E*<2vmQS@#CwyjP+>DbH=x7av|OYlW`g;`3-8RXa?_&2`hQxyQx=@$MuryyqE} zb6>LeJZA(-{1Gbm8WF?@!?bVh{I?UYuO^vcNpNFAHHCNWi~o#-i4$tvgdBFs2NFkl zw@sDj{lwQ4tURc_M2^2GKVF@Qg_^}%S&6cGti^JpQ5#OluEw@&3C5bFKDItX>F2eu zvm`mqTgI8XLjRoMK1Cs_`1MCRrQmu6ncK!ZIOzN|smB49mF5v=ZRczqL76-_RxK*` zRZ~-I9dR(OnWwlhf6#0wOq-6L9Or`0B?g}l230(CRtCOBS{Bdq-xsv4ph8OqGjz)? z_PysG#Uc8*^VIQpR<(6rA7o{GxMXe5)$`{Aot=G5VD$H(HuKs#X&0rNd^>RdS#gg{q#T%-1SWKN3bx%VutO1N>|?+IpqobM=+mvO)S^2%kl z_6NClk~6Oc?pl*Fyg;98^+?_`1|NACZ48e3Pg+FgzpoVB?NTcSs3oTO=!&>v1a$4u z$=LnZFd99-l69H!@I_b-6sF=6o6zh;NIx}*XRz5)fd0-tT;&a{)q9)F}%hcpI&j|$%vu_SBIM)a#-@f)`Y4pOE znn{s8b8+q)6FNy^c~DVLo+14lsz(Ai*QjW4xlLZ{ux@Zya!i}*?$M#xbkJI~N5l=i z%_0+bn<_)xSZl+NH&=|BqEb{ckIr%#>An7xN1ViTO^s|mImKmjpo`2=3u>!tRsHJy zk^DPg>bylHB{pyUL3hT}DDhdM*J~y1pV8EHN51ygxxPa4J7;;#@EcLSTgYP#aKpn2 zN5w-2YvFRd)U#CD#V93RW&d!*^B<}jr{oKEHhpYkiTrHoX_Y@7%(ftj~n1qH9w z%0=N^idc6h4>)hT#!hk}VsVVv0RKBLC?kO*JS17tOb7vWBkdm`1%|Y*lI4`^lxM=M z*Hoe2#v6~k`;nSlqHLUs2?EI>7nKHg==N&J=a+&RlIZpd` z0Owu*>GRFkP}j<+kp+rTP{@I^Jtt_f1y0_v9ag5*dF{l%vr^5YU@4RNLg~$AKG8D1 zV_=tyzg4Ilm*aPIWqs`cyFr)Zql)xNwy`Xr+hd5es$6Rc)#O^{3*8q~L_%&g!I*B4 zg{>7%a1h^B=;=$vJ_dBrW!C9avQwq8Z;o|bR15EaE!V-fau5$|9{nahIv$Kf-#dwY zkg5F6l)PJujhSC1#Aa4_=MS(piW$?&F{>y9*wfMMy>^TiA36QJA|=4OBGRdup*3@+ z>^`-BpevKFFY}+ARPMh|p7xg6%pf43&@DgH&;g$@#SvPiF#a*Y6-2D{kwl$&E*@qZ zy=4C(izx2*l_pyAd`kzEf&NWgTU|njnVs;5UQg^0Vl{%AC=WVnRCyUODx$j!jHH=6W4?w*cWC6EmUYx}OL&op`eI$EM|3!TY! z-Xmxh3WmZS2>os^AE&8V(OD{|cEXGbiZ$p4biw8uTai4hme>6V6W_>%4QQFTzzcUB zFz}bjV6sYMdCR~Nlncp}+Ujhs#<`tk8$~l^L|PFifOIL-^U=*aG(hEs8UB)Wy)$Wg z#NxgCMX%3KeQJHh(EE8!O{2ImyKCVkRF`4&;Y!T39`{OP{^bg=lRXW*5~JiOHxYZ~ zbgm~-k0H1mHq1A3K&3L|pp&nGJ8a`twtB9D2nrLA!p+Iym7Cv)Rg!!2emOufR4k=Y zjg(AyzIld}sOY~o$83Dr#V}Z~xUl2S!w98O$(i9kr6j~DezQcOZBUn~kN5dgRTHDj zBjV-$kr^+9BV9$`?l=tXd6r(aMM;VEmpXcL1^V&Bku;5h2y$K@K`Z6w<>)t!WJE<3 z@39!eNE4y9CepLxD`jdgTD_|qcTC0O)#Rhc$fRc!Y0)X}93w_kOBf^+wvKCw4Z}?H zL=pd@gy@`38M>`YM z--?rHeg|MG20SwgklbKEl@OB0MFh}+#Go%Fk~&BP3CT%xUPTNq42Uv}{8HR*&T2g2 zpS!4;@&DL+3#cleaBpAWwf!2ewS=iKwH`>ng~x6WE_7i{L8cjlRyCx6c~@wet@-Yw~WRHIKS*_Bx7K*UN$ zJOicgdYA?*v&o=vl!RbBvAJ^wqRv_8N+91xYRE!8H@w@Q{L$(%7B+`ET+G%PV$uWX zB{Q+5?v&1%X)P%sO)j3F`drMak5%#CnrSKoNWG#)OyQpWBsqKvDLD=LF*2(w5ntge zmeuvzMq3h;mjA-)i3qCbNF$o!_CpV{TX%cjfq&7Ih;)8|7zHC1e@6xeN$2(LvAa@T z899{=--%O}YcFb4Kp394m#v;3DZv@2BeT4>KNGtf5rgAgs1e8#iEQK!As7*hkiHtF zrEdc^;5`KL*7XYuX1J7I^) zm7EAKzA}6xW(B2kpaZe0_iA)G>X0ikifPv73X z(|^9EOFlpEv(NdPg6Gs;iyu_@)@hD<@}6&7AZ7VAkkO(q`Qr3-$|hdm_)~0udfFL8 zJSep}vyM1o`3F)G5FLCb2uX|#^L^kJiz@HO=UVW*UlifOc~_i^shE_in#J3Ab}qS4 zdjhpzu82-m0YZ%sKYOxv5Dr*b&NoQ*T#*|&SLD_&CGVAzHrw;+H2#yAfGp(>QtL~d z`OKQc%6pxUGip4>ZeRu4HVWK;%UfB!J*xkgv)$(C+I}}8+DhAtm$2M zV5|y~-Jis0+% z?`VUHUqgE0#9Xp{g|A{Sx^@cebb#E7z}4OS5m@_#Or}i}N_iL(vBB13?JiS$)6`7S zjW}Lw;xG2Ta(0~otP!tsYh;~C_tEzo1OdCdVUJ(885#3$C+YJaBka_l*TkG+VyE|y zlKwKvYbyioC&Cp$%%I@GpyUkFe->wMwjZ+VcLq{co?Lik)f>FWd;{qmqW#tn!^JeX zV}yilEn{MvM0eEFCRFAgE!;39j%2Qw{HkOtqfg&fE40cJ?ggg4>jFPL1KnCzy}>45 zjj^#s>d|O_T#Xcz{8VtD&kN^1UW_0zAMuoS;OG{`+}~GFTIZ0;K+F}_ZL&wk-%4fa zmwlrHfvI3*bqJDg696s&flcO-=uundlMi@t^pbc{GHo`vAi9A^CZ_OpzMe4pSDGHg zp0aN&AErg@43sNESyR~s)@*h(bNVv(=<01&g5YqnLWgaJ^zkt0&yBkL1S@VNj@JCs z5FgfMZr@%#GAx7?H|Lg^oho9af*|7*oq?v**X80zipb zWO&up=W|@80guPbS6SeUp)314=JC~0RSC-EV+|dD&$7svF>j9qu7;{l_8W{lft?a62zvUG$`GV1BM{5yulH5lR`Y(gX}GVf zjP|1uj85oJ6&H~Z{^D~LsB2-SqNl?2X4wogIPJ+*NUB8Lr&c$DBOGm}1l&N1?egDL z`Xb7Gz3lbgkv=&Cb!XOhg`8q$;0~MvezqLa09KG4lYAUYc z?}s#9%+^XK7%tRH1C*pLhT7+MKAnN$?0#6iIRmlGWi+N79D(^C5Ozr`k~_4QeUB%P zucNyY5e6%BI@J2{L%cEA29%s`;qamOz6-MREsa{`#1QOiF-?*Zk*)_ekZpR`0C6Pd zQ%v>9+%piYaCOu7mg6UM@IlHQEdZazN*W4%ipO;r(+j0mKM$hT{*wotbQLRrg%6?k z_QKu#FAfGw_Eh`;8ByklHk`q)#2%`rBKG&p{ZJWxG@&?$=;W{%(?6 z)LwZ~^c|EEHKAzaNT_$5A>D7RgFk9&_^a2Uo6aE-#He=`4AMWX+OSLe@E~|eNu&>? z{)iH7{)-e>-;;Y*?l?ZVsMtAzJ+Z5~Ca8c1Ts@C|S+VO{eCrV)4r)YD`OxQxo3JKz z=1K`C_%NoV16GnwsiBZa;+x8XDjriF=t~q`a(^_Y4-t=THFgWU; zMSG(MrrTTT+k>Q3-(WouPIOL^08X+G`#Eid(#}6@kK*vBq;^Mlf9nB&>;IZuI|^?1 z_C(D!4W)0wW`{9TQ51()={t9*iPNMB_ecXw<;w~51}@k5xPvElpr)8w9{~${l6Y2x zaJoRUhPk8hCV2=@{u2;fNk$y*kiZ9=q^T>4 zfQ6%A86P&2$yNm|bnwNX7C(otflh9cNzLF2*Z@|p+Eh*?M*^K|E#2AgO17G69c zh5slE97sA6owFj{H$C%**no{IBU~&k_kKyFUn8N+%F4;}#^&}4XlBFJ8=A{o*>)_#K2p9u}qHd_wdu)@2iYDcuS0YC&wq>mNmgl&rx(1qU~Jmf8h)l z*>k*Oom@Sl@MR()??bM@rj%AYA9CrVcYS#l8}|K{wMby?kTHw!}IT- zbeAuEe#Q(hUC;JzKewL>9ZaNV-!nP13K4twXvEea-~3NntY&<3Simu%GC7O)V9@3> z0Q;t`+Uc?v2~T0TwEC#*`XD&#WQtRh=rY=ztVj=rVBtHi=q6G=WzzUAS8?5JB6V#^ zFLiCXTF1dK2)E?RiMi^l&=G-xI#!efsXgLs9ZB{qr~{qa=z{~8K&2E2DQo>hI`!IL z#B(?!Ee{{@Rtb|4S|K>1sijE98Lx=G=bQfZEvB^u9&w(aV2MX`B0;ewHl9K`xf~V) z0DMz$*O&n!Ej@;g?`S__5hk!M*e15O&?EMOfn2!|em|-&{`z#j?vSl%CooIVkh3&N za}rO#_R~=&9!<1~`w_&2ru@$Hl?)?G>wHMOr02*aIE`Zg?aNQpXk}BGxM2a-I%jL# z2T!=k9m#Gfv3IFRZk&O15?Y^7<35r*+_%x=f_#e2_`tG1J#qIz9ff%{(jG&J0(@y8 zfcIfZ=fy$EjgJtdLF|$c@gw5Da`Ld+R~2ihu3GoCW7Mz81o1DZ zJ*htsO!}U~p1T{Fi9lQwYpha0kCKZJtCf$RJ1Tg}3P1j^n}rD1>I zmH0oc{y(GyAeSa^BDlYb+&>BXt8RH{Z-u=Ik#H4nQ_nUsC?jw6jowg!YLjLSIm87H zZV71UYZgFf?l*ibkP+Et&pi!d{AvfU&h~Km#RD}RY zEl~vAk0wL)17zf=6x4rhgvbIHFjwHuB5@itXSbmu0)=Hqtm4i>=fjy!s)P07BF>rg zt}XN{ZXs`iGs)qr9Eh0lnQKDJ5+7=L&&aUu^W2Z5!gZ0ZZYzV1ajhj4@jY`LwzmT- zl#ocRt?m8ecSwyX7UpOw1aUc;WKy?R9+_ie24G=d*gEIFxnajxp@FEGc82g|Lc7aP zK9b!VWQ;0oTQOOblZG*kP{u#g^0G0Ca^KU`NZ3?1zRH*qDcmW_jVMBbMYX`2mzQa7 zZf3E^aqYz4lM-gp+wsTR#A}fwGC|5>&!lv;ZR7Q=Ou`j>C~E6pMIq~ktCW91FfS2N zj^>S=G3Ng`R;-J)P$IW_ZN=W|E5#>B+arg)&LXM|mK#t>MW%&iG3HMdq%cmV7j^OI zXilvsGcjU%Y|Tgpk-C8lHJxA3wQVkLSWh+pyQjym@><=BFrX zi{f}B=8Sk%-kwx8uQzv>OLAJq)8p>I4yfcriRZK`PoqVwXe1gg<9GPzv|xCM5KIET zGQd>;B*S36lj}ELPf$Ai;o7+b|8JDXx}^NjhbEq%8sZ0uA4GYykrpkfjz1YwzRr&B zf{r`SwTUTS?+&9mLj2bxL`T2b<|vvkpWIG*YL)AEaf`o6nF<;I6{krQ7OnTcVr$7 zE3T?vZVtQM7kb;bg&hl|UuMogynT)L%A`yqpDIgubSsvXouXu~an?Kke49;MK~AO- z9aPtSHF3P%yGXr`K-N*h;l~ur%VRV`MZ!Ht@oLR0IE_MJ$)N05rv4hW@Y^GF?$T!A z4ThMvu?sWvjt$J>LbsWm?XE1#%PlA>wpjK-BvmkHED_oig4Y}L+hcZ~M@Vm0?j-+v zbus5VS(>$$rMR{X<^@FI&hyWF+Hit5Coa#EDTmUSGJA7nLYmXIML zKZ(p0I8#-g=q7jjj zR!`ulu*LD2V_H|GbW-NZb%dF&ja4@z>y>dtTvVcu)u9Sn=p*F9cuJ3zE`zf%;ch5nT+FZ4bQpM?U_R>(;r2z5!b|St=?i(qYQ?d~ zLOS8Mr2nnYo&VBG*ZA>Ok5i(#K=p+l9b@e-4-WG~tc)bW&O8h`^C1okjagx})^NcV zf@!q~6itmc?dUVJEAWh=9cqd7=1*-PQ2Zfsr4osAh=;dj@Ap=!9vB9|E{P zn?ueaeH#26bLwwP9`!L4vwvCjOcbm0O$Wf>7t}hyzh}$6p>BSAdNQ)4Ao=Md#t=WG$vfC zeKM82LtR@u9KDxKKN@Y+`xzb9-M^skpGP2>Jae?#aXKolY5wEa?aFcwe)V zYTqNIH|v<=n0$7>M=x|A6D2CeT4o@9U}0if+?-pE1zt3r@4M#pv1%sD1E}%7G&#Ab z@|QoD`7ll){;XR|BE*+GBlkGl2tEN!G_>lknO-+WAQ!Hi(-BET-L6zGvC#*7hCAF% z=Lp8>5}`}r9m?m|2w_=(fEgqsu`&YSOn&+0l_s9s<^v&13|5Hsp1OfcPL0xwy_ zs$5NHm~#$(aroB84->r5xie6xY;MI|_b$3hlhd`KxxE2k%V~Xe&?evb-mB+VdfhvL z>oSu4hmaYxS+%M0f|bUJ=>1ho4QdBkSRCk^9a$t^JiPCf5Hgs2VIo5$SIbr@Q}+m5 zw7T~*#vcmk*rJg$^9E#@pEDApZ!T9hxBo4yUArPQM8cm!{8?1e67D+|2wc(Y16Ldz zhdo(*C*zc5=nO=h-oGppu=v-py3(cluyppV0#hs8!!B-pmWXoY#mqeka;Nh)x13o!psM=x$Us`@`nh)_+$wj`Ar_J_qqepq_~kXo`9X4WM3;bv5JGX|h`F44LC;)Ime>9%-n*#RbFfO>+(m&L+pY9Rz^ND=wgt zh;LkVWo-;!J`@k`ZW*^kz{+!aT1=QGHvD>!gBn2D*3z9b9nxaEb2LXWf?g_n=5;Pcbun?dFSVgmS~Y@4Dq_^ z_p5|fTBh3=yg?wOe{}XKLglXhY>2@?&j+pJa|o#enB?;?FQ=M|HzubHN3ihg8lLHjD?x&96@=pekwv{!9+o|4^KC*N|T8{v(9>?e66n ziT`Anvas_k#l1H@Z7I5%>6)&4f?j)@G)8s_qC>G-as81!?4ixdTo8BKZNkG?rPpXD za!d~bPP6bBB+fu8A@AyYilMq%N+`LmbXMKMSDLP_SISS$;?M% zony_}6IMg?Rt0z|1=p4{R$S0`$iYmcQ>!ChG?ic!IFR5%ZB6}`S+qK~UUZs=n|2J6Z-J<#gwd8lLL zcc=s9Qt2K47*+ELA*=B&D{RWEAMI&5vL<-l*yHSJNO(R!a?8V;E!t2S4n}hc zX$}tv12NU-a;X6Tk+#zBl;TRF*$-+1@%Odf!CzCln3>Ja zuztT)@TVOv&Z|=NQmAr4vQ#1F?^n-}Je$AWF93e* zdfWOW=|z|nGp5nnOzrLQXfnnud{dn`tbw}9Dv{)MVJ6g>nqN+LG$N@BzA(E4^ig@s zh~qnJV4r~;L;Sz?;6{evYw($)%orur7wIGXgCGuzF2t;qAJnsc=&C}dkuMqSIE02n z5|nBPRnu+3{vx^bh&j&*j$OzPgC$LdJ0q*&C^2!cFYARBy0SJ<@lDwgCnvk-P&ES{ zwMOc;QB-oBM|#>M_Mmt|i;tAh%6eoPMrPn3SXM$Mx(@`KjH$~==nFP?SX=O(=Ec+0 z$Sp8ub@^O(dQG7Vg1nyNO}H0_vMw!$wIzacd3>vF1IYx6Vp;b9Sk6U(Msxwsa6+>C z&(A<@HZ?t%j$b93Y{3%PToMv8@6iR2QQ@(X(dB-?z)a?GKbIJsAst(T8`etC_kG zj_beQm$=D9kQ|AE<}s#*VF>t+jra}3NQt?{hed9QVEvt3#QUr9^`lkjX|^2A7IDnX zj%~XCH4vV|Ukxi*FL8mUpldCg9KaRc%l3hX6~ywpbi!Y^JH*Ztga-e@30=%)t9FD-UVIg!S@K{-zsl#uVq|FQ-}w2pvRip z=t!0~4uKAcTKYXX*8y_b6HM;-*C@HQyb4_9$a-Q_uy=4pG92Ece}pL!FE`)gYerby zWFeVkrG-<-!Lvpo(i_JNU>OZdW>c(q%g2MYP6sgP#lZj;dZz0ygTB5_xHOr3AL{44 z092)m?0Z1U82_E)b;`b&9BXd7r;+1a5`Q$;{PGgtf_tU)Fxozg4Qb-6dTk%$Sh=Tm zF7=!_Zd&#GAKw?f2H&2>^+~Oz#7AndWhn zP}3Fl3@z3V%)NaE79_k|h{SD6EAxw${rPn~Ld^SCnQR=GsRo%onik2gpt{1#=rCc> z^O?Fltl2gJ3S|HF?VRA%Rdz;PU>xM+<*w%GQ4uO{rZQwBC(V#St-3(WfoVl9u4oB$ zec5a_NU0A$z4Y$3*Gfo(IU8eFvr}Kwt6cfJ`ac4O!_X;(fE-?_ABVkY16mQd5Pdw7 zk26-Ml8O@s>_IUUZLusD)=R&PF6JF5WgE_YY*}HNjCjUl|3VO?S3AJWn3Tj&jf8nE0?rTxvaTLnPl3{p3mLFBLWKtU;P*G0&hC1dw zCxoj<>~?kui>LX}d!d%kntz*C|AvfwBB3aYSd+WXc*;D(lj*sf3R(iG zmDcdId2>rFO?*S#KQ7XZs=YlCUsos1+1U<I=%XNnWVM)IqFU5v=`x08rBdbvd+c#cWgZ7 zp3%XE0?C+u+Qt~+AY51#5L_xI(ql>IIOfDB_t;=bo-+D$BsvOdV&gICK2Dt_KD=fZ zu(CI5+{?|(%>v33kV*Y6bOYLFxao{YWmb2Itcai%7$rHUI$`-6(Jm-USTTCBJWx$+78o>x=S3*BEO1w|bSqxTp3n zm|U7EkZu$`FFyT@h5!z^-yHn{hT?OhTzL$no+XJ}wP)0&v%n=~YDC`L?8)LZuCnkZ zh7MUfNA-;PO%x)or#&Qr=!~||X0L{Ic9SF2I0zrR0slc!UD1+XEB9P9Wxy#sNf~45G4Te6J^12AiKueErj-0+E7}bJKkyW<JCc&Ex%!3gDjd@9S5#bt`FJ&WKN9x$;cB^cH|F6V zpx?rmasE^FP8ko;U%O7`ELJEc!W?S+sZz#NB8e`$4~H=WA{c0*sS}hct4dQN5)BrO z7-tJ`9O5=er2564fsk0v6R0T00hos; z4=$`^?wkR@Z-PEsJgmbd@&KETVgKf%(#1t{M67lBzKwL*iax(J42(P5Rp)Vn3#j04 z$loCzB;hpY$Gl`DU1m*;EZ)=2cd(SgTMMsFYPW zgP;@hDE9c}j>(n1X(4x4c0FhIrPz!(kgtlY1R(U^U+NC)X#U*`C;}ysEx*7XSYsn4&SnBQ*X}abzN>h!FYoY%e?~! zegCmrs{6a@X8~-XwLS%{C;W{k`CYnAyrK)$@LT7!A!pnhkJSe9QQUBzGnjTZ@~VW* zbq+Y$PiB_62PnwyV77u!GvJ$!FKJYSa**;CIMoKIBsQ0Zx}Ql2^Lr1S7eBkkeddh0n8s}YWE{dORfvdHmhferG+}>|K@QJL}lhNZovcfWm#_T|KKg5x?XGNT3_8V zxbm%^Ext4g-FE>~z}~o6(CD0VQ{&CCJ5eVy?v3u>m)( zo7!E5X}p-@3?w<=BPAU%@uUUkIwy5qNisa`!AH;oKTYAkR)Ol8(&g$rci$CAs2CaE z)cQlIi;9=mEa>k+#0k71H;^S?DnjvDMBhznka4_#8HcwE<+Jgihjn` z2sSnZ<8@U-SF%&;+I6w0Y`0X9e=CNbn^+9}1==+FTYsjMS|3P%XXOxq+b-lN&q~N$ z@w!HMa$W@$+|#^y0ZFz8QQ^%IVrb(Spjy&85wVezpnl3in+(P zP!4qNb|jxl+r9vI6|85M{NfsomSN5_RML}-xZjaC-9(~HEboL#xKwuaX9BIJ)r(gz zS}N!N6F&7dqfwp8uS_!Zq8v#q~o2Eo=IO zy9BDCv3dM~NKCWbQj+l#+0HYMWn>S_w*i2dnu3d&u|r}HWFxzL)NQ%2a_Z2M-Kp{a zs4qNezQ`&o@xg%=L$Y<_kJ`<(3e(ooS()6-Lb@r&Xv%}Cg8%C;^0*U-4N$3OS$g}< zK-bnwFRtBpM^|GITS?EBsV&ibQEx>c?zGdF%(McD!lhhLb|wjyqX^F-CZwUp#-z?5 zwTHb*6so?Qs%VzU=^R2xd$mT>bb%vi&VLVJpUY}=1wG1m6zgG6`)gr@h zW?30@PD>(#i1}|hcfZsOXOBRu@~!jB$6tb+mm0-zIo>zU)LcFU1YM4 zYmaO8DSOwIS+0Spy zwKIGJF462De>5uxdTHyfW#7M_?d(63Z{CxM)Af_yEGvCM$iF56TxSwn`oW4E1#gJ8 zfR$B(i?6Lo)x5#BzcWwyC4Imh^BfKv7_(B1#QWOzDVSY~IB>qkjN{SUxzJiC{yv=t zDj_~tOW`iVSJ3*(CuW~jjf1ddX42-|s>0qb=sJwNyIh>Bw1;~dG86ZfcroEANhfcG zNm2UXW67D0+`Flz`bM38<|frv%*!o`J2mJA4ay&IiKiH^W_MM3rcw<-DTVm58_$sFvrc#DzoT_)VlGg(VY1e75NoOXQcu z=&lOEkry!;P)|=4P1_#VKcfO2y|=fo6X>8HR`{}1?1o* zM#GY5d5A|LTb(DMJ+Ew)gXjuII8WI*mroUFgdX?)napC;c1KiMFzkO1|s%|zwxU_bucVFf6u34t2=lf*lbnHbG@L34Ro%H{%Sa=>gzRK?!8|AG1 zohH(;XZ!Jv`_9ur(yQK%ObNTHD)&?#nudHq?Zq#}CtimHPPD@2$Fb+;wtKbnC4O2B zPU%<5spRY~QxJ%c0*vk0u!m22Ytm_@a}&f?S~+Qh8&Rt9q=du-RtraroCysdheT4> zVjz)TJJ+K)p>U&0(Cp)9&-;Uli^hzEFDXQ6Wh*4hIh+YEellccV?L^azb3&1LO`>% ze#SBOUgmj;!c1UdZXqI(6-a&A8+&jzqn<2eFefwPmPXqP9tsZ!D7~2q-nqrD(`9J+ z!$bS8MZ9JiIpM_;n#s2UEZ{A|1Js}_p4F=zOljpP9~zA7&wRi5Rb}HZFsGoBD7@xw zb+FmxvM7P}l+bc{P;^{V@nfu(GZ7jn^?W(T2BDfPcbj(`Bs=!lF~&k{VmdbetUW?| zC39t3c{z78-}Z9KT0u$9gENp7#DhiukZ1RqtU=gab^r51xAU8v%iKH9^Z$nuL~SKB^wiA66Mnx_3s(yu-s(A+dSJwO4@+? zwWMKAyGI_Zp2g?kz{nFvRND2X?L7QDOmSoxM|G+X^dSBb;=34+Px`lUeFIg+Kp=A1 zEUsf_FF6CE^rU+BAzR|d0mJ1a8B}>5*J{tKnJ4nZMj8$tMUsAoZ*v=zUCr6MTCMB+ zhIXBNn*<3KD}2EW$aVqzJ6GHJ+Tk!gzk49a+rjzk8OW035DRo3hb6zEk|lZJ#^l{) zA!H%r%ww7GB(SQb>@rZ)FtXON@7}e@;a`4sPy4-E09LRNhR2|1^jvT!(T@}wx0~8& zZQiyusaT-kSAvnF+{vxuA%*T<3uyigIz6uiycMDod`lGk`VjrvT)J0br;|4gv$(jt z$zEB3du)4uN(^StdyFO3EbPV}-+5=XNBV|K_P^Pxe@lNdn?IRWc~z5hW4$UtN7XpG z<5)`6(g0nkbhQ)y*12EWvT5)0;jmH!x9(Pb12e#ntpi8RE(C&-w*1dGPh()Rt$viQ z=*btyT&3UNgPegHoksHg(yQlO5>=-vG>QlhlKZZVyUU+OUuNE0$rWVvEUt#{zlVC^ zV84=Lp9Yc&oF=?DNhf*R)l+i!{LyWi?o!!%fWz3>F<`AzFoKS|$Rb<%y}$^UK{ zd2$%Yx8^>+T6mGkgRP7LgpymEc0&#Tm!N*W$XNAf8M9|jJS%qUWq^TaL)(>R40`bXfob%UqoO<=T=K0t*-fXKU zh3Q}IVM?pJzbI~x2)ZKZKCY^&bqXRYE+!aaPp=|wHcTUI4DaXmB zUZwnjCKdmFa!uRtdFnM>R(Al5KbP;Efu*`$2C_Bu2yZZLL}>=Vhi5Cl>eWdY!rMlU zfGUy5S$zKa#&)UaKa8q0nbxmk&#UoSzeZ%EegD-4+a0a=#4TGZh&|3tG#5*y^bTxd za9b;r9k|m#9KhG|{XdN{qQAD1Lg6r4D_kc`PN{4AV|AbFG?m|d=}4*^AzKYIkFy`@ zh#d6F{Mo3FByrz3dcaoHJaYZ~&1H3Y>y+i_-pt~cT(-2_F#l5~R6gO@dl(xmask>J z51ejoLUg>+Eth6qe};@HzQ%Xi6=_)|6XSCdkT^9=qdfzm!OaE?2QS0V^jn4F^Ik~|aKJ4NcF}jGH9E(R+4hdUXNXW`0Sw|Rb zUAI7DJRzcU6e1IZG>K}OGOoamkU=+QR8zKne?QeQQ;qZuf`8h=7C}hj8EA0IJdhcR zI4*%CAqHEixAQbX5khn4s|o>uMPJL7o!p`3HQjYx)KeJ$si@nWTkomTM?Y;#_UxYbw;9LVW)CUI8$$jf@PJf9=eE+4MmDB0;%f zT3Y(&xtepy;wVm6^i<_B3hBLka=rqgMb=nfZ@&w!J1MCBXEu#t;S0LZjz3Jrm;Ck{ z3^r;ps6jwFz$boSKuX?x9o6)fcAv_4FHosXCH1uYrENE;riA0i4I_NL5 zOlI@kJVB9ouQ=Vt<3pimj{RP*3ZB2}y^&K+9BQAcTOa*e+G-e;IyL;q46l>*f)f8P z4v+hXMbWgU2L*rKQqxB@n)}%vkW0$`}? zz72P2nHB%P^8i4F_6eJI=YMwdUoO!Sp`y6<%}aN4PfH0hV6Feo1HkSW;g}0#?fAPo zUf30S-)90e|82|sdGB7bk8_wfFPUxnd$TOS%Sd%UZDV#yvh(KP z`Oj$BYBuG?hvqtko|wVIZLIT-f6BvT#7mS#fuT)BM{0uhJb)!t03~@Gm-jmhw|xh_ zr}T1(Pm#eH+IqRM0t05I#g;})G)GURhR#H9e2e!ha9~8p1u33^ve0a+20L_GWZDK8 zTU5NUa;9IPz{h~d=|+r@$7v+WDVTu6@wRpEDZ0q`mB6qLV_?PdJwo;DaMk^9}{5eL~je!p)PRUN>?z;oI$1s2(z3pPiv6rgiRl;{J}m&hanX#>8p-Oi+M zpHctf&+%O#%*GsVC!OUDb*WN*#Ru)V4*O|qwC4}n+Qie${c(K2$~jT*)Y_OUas2?3 zaPRBS(~#b`5S_|^Y)`c1=0}IXHBWuanH}r@b1Y9^$dJI>1F8|4AE@Lqri_c$CZohct7HI&hOJPEDoe z)&Xpxu6_f!j)%DYj;=~P3+rmMy?Og4WS%`fYD@vakznAxIl_!ah3X8l4`-=t?z4nh z==b`rmY15cjiYe^kiERQw*m6U4gpJ1*CW|Rg1;)xKj@YXoKfvwd7UxT9pLHZuB6d7r zFg)3^;%nFBjff1;I@F&rJ=~DnDe&F-;c<@D^_Wkq#FaN^+)V{Fc!{7Wy^2-Qj6@hy zxl7Zcz{-$%TPt`BA5b6FxKzXoy0PO)s6k#3iM|Y1B)D#VX7N~$9!CeU`?)X3Vc<%q zz-+=x>RORyTkj)R8@y;Y%1!w2$xMKHIvTguJ*6$!7z`tq&On?V??gkF3}g@k_#M0l zaQ(O5O+vE=6osd_FzbFph ze_Ui&NVeiNkYJuYA;;scnt+9&&pMht%s&Y~pP$iJSN%M9!lniTUPKU<>ltXHsn@3y zdjJo}uw=HU|Ez7zBB!j(9$qRj;=JxQd9+SErN)lRpQ`?Kr~EzgDeyjY4OngsJ`r8c z4<=?yvblps-O6&@ZJ4e9a{Hr4%rAwBNDh}wmVgl~&wyD%Paoh+M@UDk)byCp^`B=i zvD{;OQ&1EO>#g~)Y8*V9217d|yfuWRtAiyGBc*E`Z26pLdwZ!cwXiPE9T!7KM`!A} zT*EHy>!+jG8!A9>S;+9nYe7moybA%eg|iX5Qn1TswCv?OA0VAL6fGM^Y!w9ep`|kX zBi_lFFi;bu@eCw_HrPp^oy|coLL!HqA+d$l^q_ux4GG&8X{uz}=JU@qGvx-@B$FI5 z%scqfWSrX{3f{2uvHPciP$kiM!B&|$rSsB;a$>f4Z+OLAHO!IaaB-tRv}v&43swj{vxLMsa1YDFlNA>iF1RqB z(PPXcP)iXX3KHH76UY0gwbdOe+e(2%Y6V<9LM_%`-nLQupwmK7peP5+jhpu8aTDWb z8&OQQfUOD3TNltAOE#aq*@x3MuJKqU7C9-h883#Y7WeEA#p0E z-PRU~a-GtL`RaCfDyeV%<+&Ahw(w`SFwp4$%FTXWl zqr2v}$&y)wMwDi*`NQ^`N=$S}ENDORL2&nyN5ydv49FLQpFA*DZ5#~FyQtJpDSrks zT)wq#K=~yCW$e?ZnZrzPZU+D0wr@R^r;Ki_w!7H` zst)$~2yo40!(8e3P9+01xH!Phj)VXgrp&AEu$6qKo^~pvGWBs2GC9{h`*ej>$p879 zebfXhsmC>5!I}KG=a=c#-jSvWWX%tOOPbwcoG2J)69G8<5+AKjfmgGLeWai^ke|$N z?3{sLgQM6Q2P6KzX))1nSD9!mY8r#pc zt)U<5r=R`K8X#~t2nKMink!i6U)(CuIdBG?(dJrLO)+2Yy!)SOVk7p&GBfF^&$SVZ znQv%&5bX{iqay`=&G37n+QCYUbMP*o#`7=ewu7THjSgiRn>ZMeiU_%IcZ<=!D~D9B zEV9gQ&|uk3pM)0LQ$qkEcRY}Ts#p`Y-Kr3QObts zv{H&5@qNyLI>eH z-l7+G3tkk!j3qfg3N$%pcEb2ZB#N6S3iV~3kMCBb&rV1_-1eWv6?HWz?ZJSGRtgaY zw|6LQE=%cJvm>^0lH4|;7cvo1bI)4Mijuc_|l1j50^quUKTi z=q2-m*&HQeRz^aXrZ7?UP5wpM_wpi`P9I+2rY>=O?qnU-++&;6*;bQ!ugqMQRGts_ ztwdk!rsUZ@i}hdACJe>Qm}$J=Gc)y)?KBdiZ*}N@2G0`?gaCU)3Cc9((`-68Hq+=x zRPd>{TPNFCr8+;WugS2$~sHZ=4;MGO85{fA?dz|6|sWy z{iuZRRO+u0aOB>to+#L&*jA=Ven|`9HxC(np{44dvm$D0(4scb&7?J2{ZPucP2WPA zb%O$7oVMsxEAR7N4Ix}Z9%cdHRx|msf+I@2PjQ*p5c^0mcyG{qOrK_kzShjVN`j?7 z4?oInhs?>zs;Ir(_hsQlq^Z#uOOTh-2%wh422jUk1(Zv!>E%YHfgxqH{Zz1uQZnYZ zb3lm5tc)wbt!BdTYUqY~8Z9;CRnm?>w^UzkVxM1iCJnFpJoiT(nPh}7hP;1Uxo>${ zd-k~e!!+niUuifBMD{{y2Z4avW)@PF7TE3}f@mT>ywb5=aZq9a-hHzSGO!S;oLWpA zNSp}Ue3kWn%wUaD*btDi z;nkD5CGdWpR*rF>zIeEup3z9hHSRYN53LGdmjOk;D6p4%N#7OWSwY$H${;c;*_?82 zX9&3MHpHJA6-5?~(k?1CFCC~i3YOCqlLf(iYdUKK-N6CDz`-EF!NI}9!ob6UKp+?p zEF3O89=DRR%43|{w$wD@w`h5I#SGFUee9^X?x(66MxTv=kYQk9U_?P@pn>+zRPk>b zlj>H(uvjPiuXS4;70YF@ppK}kcZMC`Sk!&0gghC03tt2u|I-%+H87tf%qS;4Yi>c6 zA^$a>T33GdL(SSuN73C^vzbz}u1z>F5AW+xMNg8WDbtfWGQ(nejBW3R_VUEn(y zy^!z$^JPc-!-o|?1`2=Z=`Nbg;O@IhMN@c9O4_K$O2RT5kCWP5DK+v^u_#qU?#n2> za>d2kNPF8)u9Fo|!M`FMOtmc(DE>3iHF8>tC*4Uo=!1%MkEErk9hI**nRi4Q*T8zv z-d6Y0~2hmiFF#%K1VLK82(Hbe-#2m45n^kDr4KntpzsRz$t_9sinW$-SY#ev7gB6YmbS4DaOfPd<AH=Nc5Ti;(H)dan|5zVPvo(>U#BR@@P~G72Es8J zg_4nppjPqp{_nkzM75r`S zcEwCTwxA8|iQedT<2JJL4~HhpwL04WS94b$4rSZLWoR^gOuQ&DW1GUHw-`lcm>A1M zLZU^RY>_M_M)s|-Wh{}DDNB)}$l8Kogi;bJOBrJuWiWPG`tFDKy{_;2zQ4ZfTdwz? z=gc|3bD#U1`?>CO&;4A_eIA2cQauLD6ZNNLxkwj&@^LvfjeC$Q<#>b2oPXoF6C!mqUshu)1pI=*bofy_6F)6;>V8%Co*Gb!@n0*cQhYXr&c~kV_J+8ZyNl>Tu3RR4^^Mu7I7Gvs>TQEcDK{j4Jt znJP^SXk@OBQrK#2qqDuQ9Knqc9g%NV_25i?J<^ty1{z1Lw z<8zPes}-XTgqYPhNor0flw0GKQ|hSIrMMC&VXq6}CD>10X-#mXuZtz?@|GZOMl)NK zZDj8ds6O3OpqgcsIn&3TP8gC)&_jF_NGR5;YZ++1^~2s5=}T$8H}i~4m{`DHb99)A zH(L3Upk`feZF}V}axs^i9{I&*-4z(a)vford+vpK(W%@og>9opU1oQbEK2;pf#dc8 zb~Afq%(-VmCi7e~^TA5Z7G#Hrkib6aBdmmzPpsUJJ}lqS-ktLO;+vVhgI8}~ zdSzC5`a#eC6-d-MKr9V{y$^Oy9%wfW}DS~wK zT)7XAPI^}rg|d(}ek`@+#eFVJ1)+V56KIMs-2}5$;zIn*_T4@~OK`eCZ?*HtByNsH znAo9u<3L;An+}v1N+jSH9}PNM8T1}Ci5mtWUM2&5%o9slxf9|11QGa6+ z7u8?v0ZlgAKlDG9Y4duP2yuT~N;Q{y1Oj?1_5E{^)?v2BzHAVYV@i87F~#*FPIg!W z(sH?9!?AvP<$`QFFnDdnR4J|%1iJUNtNoWK4!I2%+(4Ih@I4R!dchG_Iq8RqRQ-a2 zIknE)z@GQYA`W#6+#9OlcyWc32k`Hc;xvYF1wQ&J?$LZVWU8*Es)6NX4%*Ioc#CPO1ILg>=n1;^zB*D`b$<)87@f3$ z_@I4osUA3|3;XEgXT$h-Mo|q?wBrnAAj)VqG7zTUF?LPUX;+OO8+?MQ%NwQ!{Fm#s zm1+j}j421@!XXHh)a_h<4h*{dx%xhWw?B3AGMq)o@6IoH{-0d#&ECE9sbRr9awpwN zvC%mb`%g*jP?(KKp@&||Cd9v$S+e*j?~ctGT`hU^uc?8~UfgCJR{hdBZl;L7al0ZR z{L@>xDTc#*i)vL7Sxfb<&{^CINiju^xj-`C?JnF4(K&)rJS{kxfq~ZJud$Q(+S`-W zE5>05z<*ZU3)!Jxd?sEWoflX%u1ZEWzBtI|k@--tK(LGD?68l=`}zw@4Pp3_yv55E zL>%Ff^Pnt`6%Q@szMBV~m%_?cjOJNX{_L7zuN5OdM3+u8kAa9C#(Q{97F74Mik5~` zdlXqk?8|SR9h}1&qFZ(nK{5FE{qz$=b6G)Wzn1OGs=+_P%3lsA1tnI&1wH&)P(S4v zwhJPDzxW~<#se*IPKEN)E!Og8!C!paDZQ=qjVlKyiLEaftm=Ulg=Ng$@vvWf$pq?j zac~tPc)K5R!~wi@C=QflKQ^t*t1R6bAl^@2p0HZLH4?!aXLAe})YakZsYWFwvgXS! z&~`=xY-jidVf+H?|Jcod?F`^V#Sg1loE5tyub^%T_A>f*UcY6^?bZvuN3vSm%)r(* zGxuY6QWZCK7-Bh5QHJ`Z{(`QvSS^K+kMjL1mHKk|68d@8i0m7BGG_H1BKh2L&%$qW z8!9V)z8q$39?aSUj!l{_IC`$!oP5)_ylXI}?&q1eJE+qkcAxrp?``Iab^G+2WEDDi|oJn@Z@f~ba7f@J^hWf!1aGpVew+dyG! zBu>by;uQ5qRQ`H8Jkey|i88CFkdBwc{=`PRsJcy2uHsDjPvPM|8uQx{igrs!)NR7- zhz?#h(UJ}$+?2l^;+#0+w$B5lZBnuV4m8wKUY3GWbt}hOdh3CL+)WU&aC0t zUD)Y8Ka!V)@5DrI=vSvZ^@NJ*`&?#Gnr~%C_(#l-_^2&(Hs)E-cQZzOkX?7gy=A>h z&Qofj<{H8cB?gd2vc`(?ptmNgcO-&Byw~5lzNY?4K?=Xz-(UFRxcM1oCv9u1_Pgu39#S5AhXd- zuBAWEg=Ac9cQ8f=-R^C{voS-3&*losz@GIx5OzHMFpO(fjK=n+ zAC@nZh1EL}-c=&-Cr`-diYMt(!n`dT8wR-HHEl5_=>+i)*{v57FPv6x%6{sr(mEWm zc>O6Svn@JYA905lT2a=@qGVUOkddW(zf|O)UG(?1Wl^Kw_@!S$y&y3MXz9D}h+k4$ zz`K#XRQ~j?3wXC(7!7%c0^W5QGBY(|ej7c)nMOUwXx(T?KlQ8}B~CEyP%0nUEN1^s zmDSBAMKzsgSt1OKi@IZ|QBCRE{#Lc|4U65=u~Bcg>hRwdr*L`lxtq?nHX;Xrmm%Ci z64Pl3JZP&USH#j?$mUO_BgigH=_wNfozNaTwpfr;Pb8|2#Kh3(@?*bc#TyZoJfnrR z0v={F%n&+~{Ya!k>lgeD&QxvSYjyw z8F$om@=`p5<`nb#CaZR8X)2e>nhA(%xd`Q#1q-^ZAUc;Mp3U!Yp0H_Q72IXm62tyF z;uQD2%yV+IP-4HuT3*XMf{pyQe_F~uNW~aRZISSvH5nOAY3tmPTYS{qp^)BmN+;>L z|F*x9n4F#z%#4xPznX&o$i)943Dl@6^g%6w#K2PjS^0&sZi2A>%uzg&Pa#vEA^Oze{3hSeVH6KDY(5UYa57&iXT~&M^gVMYO z0df@75QGTD`awXgNDPV%@f*-^%BtYpw{0_*pH3uaQGHi=YUtNNNRU_V2enrQQ{QJ5 zc>SUT3QRIUgbO(vS)aAly%-9}0sj~Rq;hQ6sN@d_zh(&VBnWrI=Rml0j_n$i99hMo z_Lm^s#bRugdVanPbyP=tv_`XfRvqD#kj&mdE{kX@`>H@b>7ot|LMEuo-8Uf1=qu8z zR913L3|Ur(Ec>;R9`r++QKSlJ*w~wXtWj9U8kO}~gHc9n)NoBK>aJdsmJQ?oFV5X) zs+~ZZ@3E5oF@MfBX)AYw&d1pQ-t1Afk8V2OeB#5{S9$NqkDJM-(wPD-8u)i8C( zHmb0@!vnPAH*U+0`tDm%DkEunto>YK{UW~Sq@*d^uq#8{N4NhKlPZurpIfS{JRSUM z45J|)&3GQIvaX&7VIaoe=>3!){>rf5lME5_ zrt!PJg2ZiAfj!~@sq=v+SFfZnT2e1E&(m_!wr@rRp=%nTo5?V4@}RbBsS>yQ*5$D> Szc5h}ljER^M4#)yoYy_-Ed=jW7}#swr$&H+l_78w$<21V>D(Pv`yMH?YDb#?_Y4|m-EBm z^_la2o|!r4jDnK9h^W;X@+ah9`~U<3!N-S?kwN6;Ar1}@cXx=`ScJbnVqpPMUyrb} zLktWcbafH5w6Dj=*xA|9(9|$6IQskh4-5=&aD>IhE#l!VE-Wl4E1&Z6ezmuc<>sDI zSFa!@UZtjvP*VEA$H#YYaFCamr>vZ$uYY)VcgMnV%FX=;3u~si`8yX^kGc6J2}y~D z#_#0h5+R{sclTdnVo$WRv;Y9W-27QWqC7S>R$o6~NlA&Bd39;&0RVU{tiHK<*xWpg zkno6{ypxvJ9~T$#_U#KTZ9fCUAr;jND(Vv#*W00?Z@Rj=3JS}Df{yg``343-G&H-B zkvDJNT&1KuGB7Y$SXiK;P1xJtv$M0~;^NB6%1TOx85^&Dk>v$Kuk<*Yio;)j7&j6AtE9|NJwaCXecBkL`g}B zg@xtl=qN8QkA#FIEG#T7E$!{?&BDS027^&iQPI%QFfcG65C}FlHVzIB9v&V(K0Xl< z5eW$iDJdx#85uP-H4P079UUDbBO^02GaDNl2L}fi7Z(o?4=*n-KR>^KfPkQ&pqQAL zxVX54goLD|Bn$?Vl9G~>lT%bwR9042QBhG{PrY1CWBs6rDn0Um^?NnX;HK_|0mZXY`*S;F{@|ybm`5p`FCN{R8hUPCP z=N2w*KMKm)D{C1US6EopGBS4*6wf#~uRzWd5CjDW9{~U|w6u1DfDESJ1qiJT~1d=MoLqTkBbKx_=+9vKLMzco0Wqd)WOc(&fCh@&K7DN1Xa*fg(^6D z`1tzRcsqIeLRoC>{GDvJTl4Z#2E74_P_2Kvg+YfP_z zz2^8D?rUnVc)tquO5iJauZ+Dq^6KDgps#Vi!t*NHtB#jp1LpVzPEy}FM0-`f7) z8wvuJ>#4{=o-$MEJ?kn~vQq1-++^Ic-RM7m8$5i}8mP)uuzb}Syy!k~_|O}w-lAhx ziUNl#(JJAGyz`HYijIkmi%&>QN=`{lb7BJlvU3>ZNpo`L*a`ro9O;!+)it$s^$m?p z&0ZW?_-s6Z+3#hbA$eSs*`3mDXiz8`h^u9GZhm2LX?bOJX$VWMA76$mD^DhjREBbT z6hyanad~xp^X2R95*lECC%b}&0e~jQnmxmVPbte_>7&qEIvRmSz-DTAmYoLM4+XlS z0dgXpWpGt(XWA;JQ=l^OvZt+zP+V#CHz3U=Y8Bcc&!j@7j_Sn%k%LheQ5=9Wg7o3c z??+w&!E&Ku2AkPj=QX7T+RJFCK&vgRTt*j;tF>IW)nYjwPo*MD@dl3-aEs13akEll zdpcL7(sL(G^dRD;i9YV8+~|*tNv+z;!-fxKfIo~2udEJxVyP6X_O+i2KB&Wl$`!88 zmrG?5sLdk5lC)d#z0Y#}U0=3Z2XA&`$pP}DY|nUoIo#d%ha(Z}`=|iYJ2%;*QNJ?N z-XE7M72KGz0MLnYrxosH>PcjA?b>((jRtjE0<4e@hgR!a8~OD7biPExB5||HEU6b) zO4a8-1OSEQ2o554JPJc&syzya2wfdT;L5WcM-u8g9!HVd*B(bx`d=ZAW1!J2C$S9K zjwf*})wL(_HjGmz2|QDd(FuH;j;Bd_E3v1^5px6?R@<6nN6LUKBe0tYHkb zy{KcBVRM{4G{^5my)2C+cD^dh7J%ZSIHh}D7N^R;#Fs!V;nd~1_Vw4*5%^GCUSnmp zo7%|SxNY+wuU%GPBe5p{2}1(GjrVx6Q+DX zmbtQPL#r`N3PctP2ckM-R9m{%I2keT`d8Vbl&#y*m6QC4EaUKd;gP(l}KyW_(=!&R>xl^`ow z_E7ePJT{?@Ma}tIUesVqV*oOiiF4x$D|8`sm6jc&wgqVUviwP_hSM5@!rQe$ziu(;4Li1xa~SF z#9;}d_TXRng^Vce`fbT#u`aR`O$QG{6A0i62^8^ZMR*h@mZHn(AI%!SnE7_`U> zE=Re;caqPK)92xzdj?n?Mtlu4O26wSP=JU5!@^Ds@19hkM%$O&B61$V4A6c0c2Kt% z(Ao5yJO^dAYBYSq$&od+l>W^Y{3~lI+&vxsjc{hHG8Tt0B0dXcrRI%HZk&+ar3x6g)Wb%&2JozEtBes&wv>nvAg^_ z4lrh66pnl_|C`;!0?o$_9E&r4yg$5`P+lGgd%cx&y~%=95z^{GUmDgY!cxFd<$Rn_ zIDUv>V!%(>{D=5U3Ac3ETbARx(%5tmqSBS%;N?<_bK-~Bzs~tf()!$h^0MOQh!J@e z^zcG9I^ynG4QRWK_6rCJn2aRFh^C1n@pn8SnUs-9g(W=Q9q9E^ZZ7aHq8%TjsoH?l zPBSl;#VE8c3_1FS3F6y< zSJD`Z_f>fdu`orD{ZK)#jfOZA7I2cd9%sP=0j`3B8?{ ztFe?cNlt0G)VC@uFnB2#*-#Kk6e+D0=pe_TN;JP|Rhos>@A*l7ArtF+U2FH6(xP(k zcr3w$Z`lVbWGFa95tS%AcsU9oZA~_(kDhAT;$pbSWjcaXhXk+d$YKp`Qz7k&?4Umvz={zKrtybX-4D0dcSESOb7HZj9;# zT?Egduj7N&u;vm~%TIi?t9q(u=}5H^aAokKJYz8Av_F*jU3c%jZm&utVb0vp%MTNx zX{a6F_^56Oy?1_bq9!eYP3)dEq4C$h(KI=~Fxf=Te-=&yr6bDli9c~chE4^!a(4Kb z$;LRrQ7fA(9LzFJBnC;+WkGjv7{p!UW`U|ST?)iXvs&9dupZ1?CVO8JIl&q zv-Zp;?qedc4>h3~p_lHC1^4lL(B zFyE;Yf5&BB`r|+I^Y@>iE4Z3O%5rqZ%udRV^th7|awJ)A!;gfw5`<_0k6O5XokoTJ zx%R&wbuCMBCW3wYD;ePtZZe|d^I$EFgt)sX87L(i2gO&Z&nR%p=&+uOt%l*Ms3{4gu7U zTnXy5vx0&M^b`ea0?DO5$d;-}L~EVe7=IrXf;@>mY=O_uKA37+RQgCS`8d1aqM1MX z1>&PIR@!6D5JJKHCov!<1JGBkaDP+>wN4wZUU1;V4Z#62(>a)%2dWjCeR;CKUPga4q+4>Ur`8;%$FQ6x}aMXeY z=x>dJg%kq?f3U?32P1@#a?ctGA-&whM@GCCsQ&wl=h zU!ZOVPke8eMh8~M9I)9KQ#ff9mMkErHr9I8DaFski5O#sSuS%19S>JHA{WF~8{{wo zLu^*lKItlkkfIFCMCzQ0<Xnl-5kudYLjp8y&q$sUe!Edia5Kqq^ z_*pZRrc793G1}$TG>qiap;8>*1oGX7p|4zsg6)D#F;J{#MkzL*PN(bPyO-F ziHIgyy8O|mri&o*f-7~Pk5OTqj`AgExfezx-cOddIoi8uxdx1;P-0)iS|&f=cphz= z4&kXzWT`&>i%bx1hR*A4SgNTBMD3==qP|d&c!5}9K-TrrNDwhIB)?XHD0 zL5$=(26?4LDd$5nsPP@A2@8=b+d4_SzA!}{vDTp%oxmZZ+` zC0EM0PCHfWZxECmJ-KzIu9vM&?~6ooceMkfd( zBTcDR*r{52gQ+d3siLi6h{Q+ucOer?^~;6lj52l6b1~<%3BPkBQkwgpGhuLL{DU(2 zpLIhc`Pj+Q`a1cVC?@yuT-u@SGJMu1?`D2$HeN#IRIxw~DsBVlMocN5 zFPXO7`O8^}*+`qFyb{Y}Go3i8Ijas46nJe{%~}BJi%xYeRZ|Die~rjoBdG){bqK_; zp;B~;4iIYe7ysJ@U9xn&@TyA3qbN8jiu0*iQdpQKgd)s$+O$fM{>#?>Bi2Pliv&$D z)dv(T)rLczQLIC{gwlIlc{wC0Yed8`cF>}VoF1<8T?cpnc>;{l?LU%tK?&n=l20LSec%0^w-ehZXYylAJQd&HZ z{oOeM58h!|fNJ?ufeX?OTwRoo+tP0B_9d>ro-#!qwU7P5!vi_a)49 z)P&eQt|r*J)667zyfw~gW>zS#OE7whusXq#D+d> zx9WO!GX$eQ%nwoW4*no-*V1eaMg7J2FY#=WZE4Yq(zGBV-itms3*5pq>r6p6?;D&VbwHf{2#X)$r!L_?N=w!iFP zeIg*=MmKLL24y1&8tfy-Zm$8)m@T0B$R{%3516eGEGz-$;^3tTow(o`_v-I`)BUk> zX3Qq0g`+demj&f#e(I14cydHT@ayDl>O_vE(o9gLU1OUSAa)y5P|$d?w}0Z-GfqRd z1_h5-4!qU35PNVM9Wny=Q2;s*Ny$#{H)$ADv#UO4FX+Rljg$aGH%FQFXQJV~RHma^ zmU<&wn4zk6s`D1_=VL-v=WJcGY37X)s;+Z&xJHKdKx+=L)Apq5!+05E+hlh;zG$=| z&w{6E#I@GkN6KdJP=8{HY5gOrjQxdLmk>7&ls=SkKn|(@#TdA9`qNhof69Kx^Q?hJ z1yRTn&n{e-4ds$FJBwq26q0cvP+OCM_*{*7l|0ty7ST3Ek4}y}!vW12gxotNwrg`oJr&kyUScfdb~uLIuBFQ4pTJ$&AKW#))EaUbuaT5&EJ)+ z$h`vxuIA$u<&Rs|k{5-m-!>pL|6A=b1)JB^4~{Hn0|Jeb(1r?GkOuS3IKkAnvn`O8 zKbc!F(@%;=bAQgWNLH8@{%-mKrpi?8V^tP{ZP%>->tAhHuoy9sG6UU7tdQf5bX!eC z{|Ea0G#`Zp9?x{QH?A85?2zx5S2|7pf!JN*?P|34x&1d?B-sP0-;BreUUHqBQk~Y^ z2Y(*jR^-{860r`8X_s4I~zau?Emg_fHzht1h^(;2X0^t8P?0 z4|aOAzxJKB_K1t3t5xECu%`XY7J!S!5=HyjiwEhZ`(sUOqx;}iqrImuVCACFGLF>< zH^N6r6tBg7Wa>RKi6(?q5qOt!%{AZU_brHJ(eo4LUcHGTxbhg4D<)P+kh)7_CkaGS zT=nhm@h^!ToS{{$f1pn)1E~u;T(<#gl|bqtka37R?)@WUS-bqV)qR@IXG$O?vO&!RT;KcfW7@mRh{9uW$QD6Ijsr#Es*;x~ttb5A7Xh#hEdUP+U>3i5G%dz1zHM%c zug8e%K=SVLa&Om3;Yv5vMKaqZA<9lbeFTSP%P+oH>PrCQ(5iv@b@96keXaq_p<|-b z`TFLNyLOv`eG@tVaU4r-Ye}Is#Q>5hkE9NUnjbzP~JDtM-y=73>2^Z_{(n;fS+oq zKPT1pF5dldZ@q&h-gmVd0Fd8;QqP2YmpG9BGid>RE(<$r`rE?x)8F9N2aUfEW-xg~ zq9QliPRqebG3G)tc;Ws(pVYqwtv~yy|BU;fi+m`(#sPt`Q1u0<(|GhFGJToM@K-X7 zi3D{KdbinoPwz*qzU7(yV&UKs5TT0# zfM^2MAHV+`(Ir=3D~DYXOTLwokyB7oQ7dX@TjVMj%QhZ(p#*EVxOsT_kWpchTK1{m zjeXUfSI6b^%gV_sC@PWRW?UAUtY@Ymw=e4(7#vBh$)Lr;%zRb}OJ=fwzV2-2XokkH$K$QsMnuw04!i1LC?#f&hsE#$ zmlZ^qd7-LbfYH=4;g^TawC-8Cq^PhetSFJjVe@02v8+JAxM7jeq;nJizU!^uL}m}3 zL$(O%vu8?P-01PT+)RIhprfZNSsZ8wx4EBMm`rbaOItV|+v+NkzAFrVS`5NYDI+xQ z|B9l;YeM4D^0dTxiE%1B9ugYzE7T#!igC)Dq`^fi=ELx?(fYdS3Nk(E(GW}AFfyL& z9Bh}Xd|60jU9^ezKm5j2Lc}BHN+DtD(_idz?BH575f$!5I>-$C~MgdkY`8xQ(pbFK(RK<>{6GcgpmLkoz8hEz@6jV zfIA@veq>n{r^!K^c*|F9QsKE8y#8clX|SZ6o8d$LbYC;KO6V!k`%hz zY3^VtGI|4jNv}qgG;I`ZpK!_*fsk^~3j3OxC=tD;b1`zN7IQ4}*_?V2Lm20IeXDPR z3eSO?uC7xPQ8XhNLk0$xlQVSkt$LTAoSv3VmlpN{e%2zxx{?02!}6IIBp_YVL!W_C zkZ6}S&h1M0k960j5xwWZrm6Amb_T?t3%)TlK`r@foKQbWPoQFo^Ta#|@%wyzk$=0% zT73I`Q^z5O9@MhXQ^~Fu!~C1)^HE%%0OZIrgY;Ps1of0Ph)+==#YJL}Khf|R$y_!} zHH!AOz~_~x>wiG|-h2K{_Fu$V3j4VzI(vxt%|+RA<{AVqec{V4y)(*$LpfE4^BG!k zw!npQOSQCdZ6EQPDj$@1YdIM>+x%srQmE?&PCNgi(6gNUXRwu|D*aBVgG^MvZ&3M9 z8l>6&kK1nV$(|>%0^#YMS&oo2anY|glq_z5zN6QVUQnm)tf+^^DKBvh0rDGCQrP6u zA=`In{Qczen^`&qv!DCsyb+>)eX#r#2uS4J&l;F#W%yJ=D{^8EVw&{f*ZHrG`d#if zm;9cefobsH)%{pU^AFN7);>l*2F*i1eL!j<&=RO-O&OJ1)B6HW4Lge{SRgh8**-1XW2wd-`e$dNDc|_1$7X<~ zdh`EQG1^%L8-Jq48^C3Y@cuxcJ0K(?mD`jWU4R#sIMO}(yQ&n3LTdEvEP}y3$q{Tq zdVCa~J25qp@*b_Q!~^3!Bo0g?dRkqc^&o&hUt@~;%UCX_@RGb_wW8O~sA z(ZoNIvbkq#6#0W!GM97-gHj#N7~u#*gjEssnH_-aMySsjOV9`{c~>(J8VpIILE;_n2llzb#%K9@rSEXwa6a-*-aS zIGIoiA)C_xxC$1&r$?=xGM*<}%4+SZWrrA|Mr+wW8h|uuCF$$=>-E6Z{#343ye1g6 zVvdQNQBb6*V;wUjy%6atMyctnnT2M5!Z=1`6!RRp1)iGnkjMHzYk_j~V}4~g1@taq z^C_anldif)R*At|8uixghPlA1bd-A7DoRd&7TKLl7cqZemRcSABo~OaQj3AIyZ`*$ zx?D^dysdv;nUZ@)rQ`xEF=F(l4755}C_q@qt$#!NmZ|0oX4;5eAnXZ?-3gu*n;yBz z8I2NQ-u4y8JqhFM1Hc=&%v$wN!T`<78%yF8l-AN$8JKqO3?ogdfC_;^g=t-m!D+aV zK=)Kr0P(k^9oV7YfdM9^kdw_}fh=BY)TA}%nOdQoH6^!^9na@*`I>T_m1?{)Hr(R3 zevsyA<M_T0A z0OOzE`?a#Vo;rr>zO29vYjSt)=n^JB2!lXl-{E{c(ilgv|(L_ zhblskOY-EFL$J28C>Sr~Viuy38cPTkKBDFD6nSH%Az|C{Imws^0{D(@3^-elqUyR< zMU#$ruJ$lV0WX?*kXXr#4Fq0ta~g(-YIs+~=p;_A$l`BJZ_bFK`|o?+TM7BME{FeN z-OWreT91{pbW#E7(7f?kIE_+D2CoZ92?Wj|K{NDyKFo8uZ((o^+VPDP9(S-E)MY1D>H6mT-<&58V6Y{6eE zaKB`OQ^>uQjS$jI6c46_%CgQTFBMHi&%7=F$wMku`tBZ7Ab$9J4rP44t`#(8XqT(| z=8@)o7!avdMsG%8g+>+W8;2?uU!(VuI;dayUt`$IcFVnK>G_(%qpkWnplrVuW_8CN z=&NFD=^@xDWiSEUPDbDeJw^a`8i5p=KMc9{;*Y*}P9aHSiv0s%2+S(`MuR6S@X%6> z_P;=;Gyt`3FF!ASegyo}Y`srhIWlgsvQPT=#sgw#iIM?jqy!?>RRCHT8MRxq^jjwS z**<-|`iFRccFL7zriF#==NIe5@v?8z{dXBZqbp~=7R@Ie>+k~}hrF|(Gv65{z# z(8x1k3I#*bKq6lgRXy;?+VCiN@#IEub)dLjkYr*{wEtM8Tb&f}@6lqKn7!53V?1&m@@K5%y#`RIHi3t%~qG815Ed9$njQX65&qYUCh$5$W0rJqC0 zVGEMStT53n*lP@9-~lz<_FzzOJPw{A6fE+UPBf9~33Ijc=x^r{^`F~Z6bMG$177Dh znidEYfh$by2~e_oCiNiI@N!P|Lap(j7QXqy#0IYPB7SFwty7BqHjITR?Q^O&Yf&8$ ztIAt#-dqp_(9MG`rcI;>&A^3YCqWYcP)a@ez@I4shRlqOZ4~SZUkuYYO78Iu62OL+ zEc^&>`jRqw&h*c+0Pa6G%OG2()ucZw9=5*t7!zTDY8gGT70%o*QIX4!mh3Yx3(T}0 zl%HB*?f7L^>B!G(++WK0e}CuMV&$J@dx~8_S5Mhkfx6W<4~w;l`K}PK$3K5 zcX05W&w(qyu}Bf*yI+Yb!UalL1rwY-oR_c1mLbwBiLFaw`wrZViSS^&v!zl-b{J0# z+tXZXO6gicXa`LtfMq}$9Q~s(Q71>$^NV9NZQ9Xka4KY9!9aHE_#+)7nx%%eG&FnU zcFuB!!DUn3DQjxg_K2@gf{%i)UF_&?9d-m7BEf~0lOU-{XNBDqEloYe{w7Sy2WaKHJ(#!&pQ12gei)?6}jMM25?XeEf zBgdr8H;zQ}db=6yM@Gsu%)wH&B(HK9I?$6)mN*mLyECkkk8ZpIhK`LQIBOKWj$Uq~ zdRP&!-l=9yfHRb&%@u}2?I?V$1ePEGh5ryTJi-{kD+|?yXyTW+yOSMqi{(Yrc7BtT z#=A+ioSAEjVi_r^%w#g{oVN6hkGvPhUza|@28uv6WM%{gEVU0fX(+G&(QQnlUQ*Lx zVs$H1iKlN@IUZ+VFiy6B{(6mZfa;$)Y^ERT>TqOo56K8L(TF&nu+d-k2)xf6WkQ12 zBz#}lZ!O`TMwWe4LxV{Mu9)<~brqaR{kn3+h%{X6G$j3W2Cqzp;c|>W z(a#8sRyi3rmmXcYO-H4{#&zW)PVD(?g!KMUj;D^Y;;{e*fGq3$#@I&veL zyMm z{D&Jy&vC|h34mB)tg9%VXo&qlxFKj0EAp1z?Fo>dJ@0+nW{41ot-O=(@Yh_)`n*CM zNzFro&>h3*j^a7WNJE zu!3-84Kh4ua%*t&r>C3rM(DI>tbiAx& zst9;u(OB{GM=@J;x{Q~)OT~(c0Q{olF8vLhBXZ8i=nWIt;{O4H@XoLjrrEs=1oyOw z#_2UNWxeuZKoWYvJ#v?gzGef_{)5>;i&rk^!u&i+&|+SuSfU;bsQ>8?CpP_>yBX~A zU%^MhT7y>s3SIjrkF(S;lkN#HPdwN(F-))CTfzx_4uS2)+Y|j27Ln)Rq0}2qovMbh zZ5_m9cs=pXCDS`m*K3N_eX(UMMGLeNOWM7FUec2Y5(zDpO3i=#Z2H_E;9C3J2)HCzIP?W ziMk>%>P0H`!?gdqUW>vlS>`^Tm;meVft%D2QtH}FnT>d*xOcpHE_AuE10xYVaGQJ| zYtj>-w6JN*7LLIT6?splFSb5%Y)TzG8I{zO5dpIK&4}SQ72PB9CXLIJ^9tidC@%0S z@^(761eVs;a~S9xvm8mwRvKk9#kL)pn|GNn9ON$x(;|<3-$$AzF&lWPV-9%syG#OW zkx_8W8mHS8MS2EZ*bTr!Mt{7oH7MuxBL??d z6qBh(vL!G{Bgy}&k*YKis;eCZSC|A@Z*PTkT<6~_WRC*MiU3JnFoLpgM)|#EiM9LG z{V6*R?B<^uUdmF5xN?NVcH>{7%H-;@5Id?;>-9mtp|u80<4){6fV#4(^m+A07qRNH z^M)X%+G{j>ua{sX`rh#4y7Ti?X6t5t=XUmm7982;QKCbP+L{91>(2 z@-Y&lYgMsYs*;hvw96)H>Zg&vGX-&!b~5DCu&AV}xN8hBkU(>-t9 zS;RVE$6R4UYrkUjrffjEa-hp7bt=2S<&AU|CVQV2YO8|aUc9)-#Gb|LE5Zf^Z~AU1 zVzC3=Yrt-LbQCZMoX9vMDEx+?5PaOLtd-3dot8O)42dd?l^o^N;Bd>TJM4!D!tzIz zkglil9sm8=0hxO5_N$Sbj?=?6QL7kf;9EllBlLVjTKn_%13u=)Z9fYpV>Tx-8K;&b zhSHX*6-+-bEl&K7uH~kb<=js+P9Oh8KkTqG;v;S&emTY4+$O5faG#Ia*~e7%R~?q$ zK0QA-UOH@4O*1vnx(|%;UMejjUWj1qA|Y3+EO1EwtB*D~eAjECNO^(J?0&TWz6(~M zr0-ze9lc!9=M%RqmzRXq)MGp~Be=Wr$1VKZvO1|XvIJ{SleGc8nYs7G@9(gdsH&+? zHT#`LH&e7~rbl}Z)@>mOj&;95eO0Q{%&+#EgBaa(gC&js0MMPu)3gY=N%lWu9t9TJ zR2TUNX)XI(-@^S;pH(+8Ha7<*r2ku9W-yz2(4PzUD3<&Odt56yVmtVcw;zmzU9|I& zvKT6%J%f4l%-%j-GzfTI^M50Z)-%&j!MAJX-p%xRxY|XC<>bSejq%6gn97e}g2Mtg z1Bzlz?BaWj&-!B$s(?3VCffA}l*er+cGizM*-|O;574-D4LI*h5V^)hWuZIdO#w0%%xZ{>ot^QFNSRY(< z{!bC-J7Dgh^Q-*zD&lN&^bPA~wxj76%%Qz)osZCe@EZPc{Vs{a4z>I9zZV{7dzYVA zTRyAzfA-opuP8B5%olOz{dma2dt-v~jlkkt-^HDe+ZP8TGQ`Nku=QVR=w8jg?uu-k zqjx`296py-e``3q`nFH-A!o2Sze@3yZXb#{*sgWt_SqPsrbO*H}uebbeudP z+i;In{?v5%B!5UpNbyXm>Sq#^#+gjk{68C{_YLB;-}yg0377nMk!vq2T4~$=tR<5; zoOE>YWi{lTqrit33j1&Dx&Ii^(6n1=+Z1h;5|wi!fr0JWYph+)gVr6pO}dXDU6`H$ zGA5l{+P>hx?fdalgkig~`|#4?~G&a@U4)vV-d{Uj|rX*`r53Wk z`eUVW4e6B#T}o?C^lV1-8kfVdBIYr-{fxhz&kg0twQ%P3o1b1~jkTE-deY82n9mHV zT?sTY{*z(uw&C_IXSM;PpEI7BV#XOpvjHdCK;J6|g4NrRF1^Wt_A=$MZob)^?c*4Zfitd#Pn|IkD_ z<&FKf%hPseJOzioAk-$WOQ0m3B0Y+G>kGS9isO~9Um;<&QyUe$ccrZ~;;0Wg6Vc|$ zb3iz$<}MIlvbp9tDCdCP*zb zHDn(Uhhe%}ymaa!bBbv1l=zH{L>Pt8XM&Bt#*|0Noc-8{v_^M0C(1Db+GoNIg{$-6 zUH;Xy26kn~L;}P?0A2zNA@d+PsF7@NF09U;ni==Hrc@=Y^|&FWD(eH z>1c^t8(E+~LT2tA^IdA*voPE_9h4Rw93%UmsZwOFoa&Fsq9eatW(et{l4-p%RR4ww zOSitE1w~EgON(GNUM-B6<#~GR1@ANwu@ZZj<<_u{z1RidHEQ2 zT6sO;L`Nyy^3m|FiN`d5vi`^%$TIjVyMuGcgoUZ4Qw}O3*HF$$THYAPCB@Etc87`Z z)W?!BU982k3G+-l)ejp*vJhz4PqF-q8G+HFUNBWnXfVn?$9{;z3Bl#Nw>I~n4zA4_oE7eNcuM2PpN(}x4l=PEQ6hW(BBdh+d8HH$=)s5&_-N2~hvf7O5!6L1 zU7PrmM^mMbD41sP`SEh^`1@M-DS0R19L1^_;BJdpd?t8S^6z2n@KDSB6>=+9mH6&2 z0JFqi-MHSmQt`2QPrtBIvUxuy6nyY7oK@tG4layV??o*dWw}u_5g}SDHy9;omqJ>o zFnseOHEc_E2b2h2nr3NzOP8vFF)^;O`STo&5XlQ`@0xaq+CM67qrojbQ2HPBI8d!{ zF>HxKdL%X*sRqoO(C>6I$hTb-k8UHe%xj1i$0xlXmH^RNFDIt`)lPhJ9`!B3YS&q3 zoC2FR#%z>+Gu2;82x$$Cm4|pP(Gkp$tP%H5Yl%RPU{b!ZEuN!74$2;cAQhEPj5KP^ zK1cgW0eU_UIZh~LvZ$6;DfdSI1f}a`sN+<{4@341MPfhv-iX%8`GM}pCct@?v!IGE zR~{EgGHS;gil&kBPG*Z>r8is23XuKqMV+B7mXGgQJD1rNh8WRPR)v3aqQW;frH<;$ zlzK>1V9yZR6P>B(!E5$V)l_3OdcLrEpWm)uFnK#<*oPBWpTW@>zZ>E%xF&k*k*7a;@<86mvGB zU4;fX9I4Ppu(Z*b$le%~vMW&9e{!X=7c`f{sEdy2hstrjwOEU2g}bdhUn1koYQ(m6 z)b3JV&BJ#S>C+e3MNF^+s%Bf!g7HipSDnQ>;`vIr%8KnWk;q<&DNlW%rS{{?5Er>juFn(VEhWOAY_4C4i|?Mal~_(d?CT%`rxEGGgkN1+@Ay1!P_l zVJH>``Kz>MZ(L{{D$lSg0xDZ3)4vtN)N30X>IWxuZK_tb-1Qv0z&jlMBFJ#TxwC8nIZop~@y5+;!-B#= z17Dr&E@~31%2G3kz`IR@-aCKyjYTi$r}!1)YQZ|H8&2Kc^)%RmYlq6kW@hgG64fX6 z_G7%_+{1unYXFn%3ml}kHFFXT+?lWS{oW#*ILNl0hlcHEW@Z~oiiAUIXO`U|#2VL* zX5Krh3z(uiJF=FKwYDtwXADbf;X}}UXnU70D)%38Mze{f2@0^|Pxr01 zQo%l~QK*Ny!R|no9N7In!RN=B$0LZ``gAh@>h-Y&?R^M8KS-sW7RKlMhnStvhkZOs z=_LBve@A52&kg8#pD3HTX(ZlTO~-VcjH)A@Cu^hH#cZorz|b?s2A$fWY$F(_Obxoo z4yc2El?|8%h$h8DMAK`^g*7l0f3bH)P>-O}XSNv0n|=an`oXV!7Ik2EKRQ=jG$+?@ zj4AtrU1puqw8%ih1r~aAbJIOCMa@f_SqQI-jRn~o>T}aMQy~#oYq5e86o+r!=6N8Ir2{zH~R?h-6;ZAi9K>gUU=_Pmgx2df$ zrRAw*AC;f%+&?FBw7*63Q9Kny=AOCXOiTwPeD<37Nr<$iS}VK07qW1M6=GnMU(z;Bd1(Oe%@ArDhhg#m@)RHRwu*rxIz$uqWZ*ts3!=X?gT7GYa(u+^ zc(k8tU#}hcFZFM& zi6u>PsYc8@tkG;KXtUu_Ss@i}9}FWfJXrt^ss!Qqt75EJ5-0*t3>7d&3~>d^T0o`U zES~|E#oCV4U|bWVZ2fVl1!Ef=O#p@*c}zf!Ml?r-1cy^=Yku>>z_YicBb#h5-O)(J zBZ@73utNFID<0oI4Fe89LYqK3i4;p!z(CQwJ*KEd}wXG^m^xXiktsPiUb+$uGZW$^MZI><}&e zCqs_~0I$clO3{fIqYta4U|uN-m`CvKLPg%I4Pjx>YL9*l+Vhq=dAof`K?fZ>#^jAp z#)QL=*A3PzX{E9?FQb%M>J@IT={m6*O}vmK&9c z0_O1jc>4UfzsqaKI@9L zurO7L%4H=6;zrv}uM^|ybM4G?qq}(%dld+u99uL5wY6B4hd6%4K34KPPXs#8Gd)Ws zivfi>Q$SM%13wI#qz4BZxw)hy6@Y{qx&lZ1@(6c zO;<_aHG-a1j*2wo+HpQ7wjM%>RD9L~Xxdz0^DW;X|>ToV;t34u3CoVRwF@XAwF z`FH=2-z8(4P-8gQ?;B88yLC-GOH~@2Fam^FsHLaS|7KnNtuCRgJtwo44!1Y=A9q|M z9Ei%5sEMw#Q29}CkrW&Wgm#E zhnYsxnCeGkh zA_5l+la*@lQ9G_3k$KLPJCCE77(70!guTT3PN4cs)RjD+m%c7*vPtP>GrZY}vN(%# zeba!bV48J`Hp)OkQ4PeB!)5S&4#jtI zB3|5IW#ih{&bG(u9NTP1ifvT3%Wa-= z&aA?2BJOI2xPTRs7V_IT4RW<+Co!mW&d%VAa8;RM@A%#qbgpU+qHPX{ZsZ3fkZ?Um zG#AF;ifec2*9aDu#LX|cXs%WtovbRI*Qg`lxFZpgtpAPHmxQ{0mvZ~hmF-YTlb4ed zJ1ViInO25JN3y@6u_~fRh+|b%E(1U{2&wJ}zjbFiYd@;z1x*7@8xHcrChBJf@u?7F zbSX*L%DUc|iAc%&Beib-SY&FyfcW;({y~n^6+hamEF{M@l`m{W+YJ5tI<&berMS^* z?z$4Lvc0DABs;s>thyx>H$G-%^jvw~jWn6;_DTM%#n!E8lq+z;?XJmvCi-qBKeKx( zyi^;&VaN6j++X+f+PkhRcPCO>nNZawHus=6ClBR`D(D#YCk3}+Gf&u8 z*J5r}v1#Rxn3ssW_X#22aQXXXYon z2sK9uJ~zo}UT;;BEeaPzu(I$EZ}YGW?VuE~i_9&kn6sJCU#FTd1p|aZ4<3DXz0_x|AGB7JtmNwlnqk=hYPC}1oG4-x7!=OF82p=CxLqCWTQ*vPtpcDIr1Hx@fS6QLQxO47EhvSw6kw?@J0brr6I}yG z3E{S55CceC!)*^zOLYMXdJ=-h_`(z6Y3agNT?2Ng__LWrbhK%;i){8*3wCC+WPdzC zTmyhgm>eEhb}N(i5?FP8gm#o5?!E}_q0F|6Q1vEL<<6kCYD2QCSnO-}6FZahgS>R8 z6!nATc8kcSo>*ABkZfv4c2;9E=wsh-+>C~ zwc|qaDx>vfkMk|V>v6|tnHu+Kr}fD0G9gr^4SqHZC@=H6v3c5ee0a2)BsgK>_Z{nZ z6dSmDZ-eq;DrOrveOEPNx5#okNNmdotWGtiN_e1-#db$Cw|Mx1aCrZcq&R@AcsAE9 z`@;4{9JmrpAu$z7p^$)*3aTE<_jXI^NZ(6~>vmi#b$)L&v#BlsyDvEG%ojj8O|rqq z#P1UCO<&6hk;g}QgUWN`tAi)G6t^#R1A_g4K@N7v#&Q8TA2g7ci;+Xei+^~HgEpPV z$6U8!%LcSC(l{Wjr^Bg2Oy1R+*X4!tcG1B3b7;BRVEIR@v5^0*M!z$e`+-={PF-~i68q3%5QPLjz9vG0Dn(BL2q^tsCRd9o2cxo>ljp`@be5OJUK_Oz%cmXMK*b9 zbbIulC%}um?dN^T?|yCcK67V(Y;6B;gueBUzF+K8`Imp_semWsco=?!zKg&Nip4Ov zg}!GKLQYDOoD_xSr_);bp zV>3^-M3S&3k%c&|>>&cw+bd_WE)r1@YaA7JAV=*ak}_jVn`q7W5pKF(?Sv4M-9ANxXujM_-a#`qq$UWS1vY?oST?_+(N+G`k# z&mL(&ISeiYX$j1B213N_6P^)(AYGb`SA?pC@XoCp8gK2MvUdl_9ek$m+l!8x3jQS{7T|e^l zBMwj;6dqTv7;@MqVl)b(ruZl73l*nXRpja@9t75IpMSKZOwC8&Gqqj|@$ z_l=J(P>o=osDKsHgN+rTqk{jR5b)!6MLwd~i}xKR4tXcp<6$aH)0f+LNH&;RbJwL= zTE=p&ndhKfPVbCM-E`s#qG=8bT>|G=Xhmr6h2fxE%H>hq`tPc`Af$t|4g z%e_SzExBYleV4n@?YYFO6EE1k+L4VL_CnRPPIQAF;I((UP9ya1t1B;D^MWxz)NQz5 zhXVQF(>TQ`mDuTHYIFY@#143xH%``Xsl2f73b z!F5ryLkpE>Cj?q9e@Uod08AJbUnxygPat5 z#1q%zRQLx-vVs4R0g=lACa0$bHu7qLEEoqo$u7;b(S=x~S?G#L#l0{fdM`m;<5-6$ zy3Ng&Fkk^JA;keh7EGDRqTfKuasgkO4w%0CLn|W$lP=m)IU-BJCQbEBLas0gLF5Va z06@+HVH1GD`s47lNi~U_GFgQ@COS!0K`7Mlo#gAEOZak1eem-M{`A=(lO+Nq+R1pw zRA{0^C_p3xC!qf0lM|!&vY4+@?k;rsH)6CO?GrJv68$eQ5h4h%>bQ2TfiG&;3N+y5OfD~`& z1a`WrlC}R!K_8P9N2Ml@3U)k0-qnkg~~uys+I0je>R>I9l5p=%^i zS;Ss4Np~;-rG>rP0~08b?yZVkbFE)ThsC^&X5?{#tqmJemr{yuHEPbYr3#8UEDX%D zg^JxLZw_08z8c{@AIYm@+=+zM5}~z9s4dC5DzH@;3vWCf0{7fD(SPdhmoh=$XvgYO;>G3w?wRS#yuZH@3(3q;Z-rdg$SRpmC+ z+7hsZ57X8Agi5Zz8RuIW^aQLn+5?)XDgrbv>oM~<@<%1 zr=5;c3J^eOp32T`7oKqw0?io?{}~z|2GoK}1~fS*@zAWr0H`TMf~6jtC&f0G29N)m zlTrde%57!C0+fB75nmgW=9;v#hX8`~QiuZ>fOhRz4JqDqSqNPd!DTmH4Y@EN$IV@W zqeb>*o-&)(;HjXm6DsgjJ=9C=yIa_-i4`+9j;(55Eq1W|MjEa13XQQ4VoUbVB< zPVC2K!F%RSkKE(4^Iq1vsdjCUwqL#ho>{t%zWYN;()na;{(a#kP$mR> z`70PAi#{P>Ht2AP19U&?a=VWqz=*4;ufe0WA`HUvI401%Z33wU3@{NufXkZ)Swp}A z^egB47y#Td)`Gl`Fu}>2EeJe0`%9osB0-n}f%prEaB_tjJg4xZ8RGvLKAO;m-7$>V z;~XW>Jnl%oyP7!fc@Gk3K~Hdj6Tkookh}t} z!E+J;2{^ncoCFpCtOl5rH2l66(jd$kzO%aw!x+C{qqHMPK?X~p2IN5(0IcV@!bV_$ zqk|7OEI@;co6{Qt74Sipumt@Z3w(iqqAQlG06>9}2s-Si)=R%kPyx^@Ee<5SaBDm~ z;Wv1bx5O|C1%S7VlSI#JLN^IQQ8a>6Y=BgBgcBe|_2a=MTolebzh30TF;hj?ctQ23 zI_?X*;3GU0U_|9e0Y^jv7q|<@k;6pfMIulnEtIqWLy>ACfX4rjw0}bk>Jx%pq!}^{ zM-1%7Dl866NdYiX0VyE224Dqj1jl)#18qzfd5pnPt0?%&MPcYe3MfBHxi&)l7-SU4 zD@cK5=|@)3NR9NzUm<}MXvTR=rWSfYBS^wiIQ z3P~h9k)~79Lu#A{O;nAhRKmaP%f-|LVQeGfp~zgrEuR0Rjh`$Fx05!dbS%1L%+4$V zc+4D(0V;cVN&pDRYod#;(LB(Un-*eC&xFk@pugI=#dp)0A>@PG5JS8S2@oWLPb?V6 zjLqTf2f~aMJSoXrk|~9}4ZFNNtV>SYT1YoRI^wiWEI`AcyEd$}&Fa9!#wepbx_~9% z&WfM{gIpuyyiUG^L~?|JUF6CnSVJ2#49Z)A=(Nh$6q%x2&;G1}?5rL1q&)|EPG;1N zroc7KiA*Gr$jwtv|2)d}ES%_kn@SAAs1s1Gm@h!_w5B@|D2UI+;!g-A(KNumW+~4h z;5UOz$)a1yJ>o>Wy2E42!V3j^U#PW%O_}1)Jswu)g*}OlPmQr1$aH$*w74sx+Va?+T173+|mME z(iyzAz$D93le+FO%w$x-v(ijJJIglJ$}T;o>g+<^%*hS-2p}B`$;mh0)Sv~unp*PH z^(;kO0@NoE)b&X?DFqJ>Q_V_rRAsa&S&CHagj63xRHeI3$#6ZoFpr(PfGoirv0zgs z997~J)nn4WV`-2C)uB2C5B_^j$AzM)}Um93>~+&WEbE2S9WDso>5bL9Ri=DL}%>} zXicl9D}!x~ny`vktt6{slE`*F0!Je^76g!S#V<7NlUZdtf*jfT8_{EWO@6!3d7W6p zaMgLr)gPU_ z5FuRx%`?}`^H(mXElBLmi-PTWiEjF;)Fq{|(!yJ7zPvDwVwN1lPRaQAGPm6_t z1K=(I=-I?@PK8~9p8Zs}sVBZoLx}&)r^Nv(jP=nyq>#V6vta|#t&JLng4`OULh35p zCO}yuNZLmN+XInGLZz*k4X_3{&Cs=_tW~Ng)Y*GoRREY&xusGJWf8&5L3+2YRvi1- zT->>g5=72R0@c%Fb6{Fdmt?}?XL(~Kh)yvMEJwzQOeW+sOJh%_8N4FqkEyHd`RXDTS?Th3>h zz72jBx0gnOy&d9(fdEa_5)RV>+3q(w2ri)1{kV#K3t(#|K2D$|UhD}QsiZ^dl1V*B6X+kclet#l zaR#J^rWwOK=Fi@WwccvGZW=t^o!Cwc`u(@j7J^SS>j3*P+3pdVKD4%Wpa#+Giybr0 zKIC~eu*c|G$)>IqBkme8>ZH@ps$LCGTLm(X6O>My((~=lL~M%n?CZV|t)9QfmhP)t zRRYj$b)1+i;kV^Rf)qY9*jDcgp>37(;PMV`&nq9yEfh_3(G2D85+uCg?r#7w?qfr1 zU6v3Dn@`uCWrmf7@i{p#uMA=aI7~A(Am&!I4a-n7s zcZtq$ZJz&8*QKTuPqSpc2G5UB0Q6k&w=2>br>FF`aoPYd!joZjabhM&Wv5;gsLqlB zuTY@QYd8MpB_|^#7wxkwZ{%hz4KKK)@oD^W!yV7wS@Ux6#KF#^ZmB7|fBS9>E)>rY z0Kw&9ERO=`ZX?l}?>8TY^ZLExJ*dpqWIfMu0zptu)4VyqgGT2WEE{w}?*uE0K1Ln_ zcpPofniyBXmj%#d=TmAl-D#7RaZG;%qANf@FY~%)>W?^Y4Pjvmu=57dZzb69L)$4< zw~1emzR)&HRQGDlGL{xEI!R{suT^gr6R)Ve3c~Njb4L+xdph+Kr-Ed4 zQy~ABc0{mr60|}pfb}_NLzXob`t@;{>~$nVato{XayP{)bvFD)0%9l6%S*{EPYhst zfKqqsak=X@qH%nOUNhR25{FF?P&ZIsx6 zg+=LaaaGk|_VUhGfuC`Q2l;CFcoKB^Nqmez35jYWcYynd0!W+kW_CKb>Z|FDE}!{F zSoj(o`c6j`erE}hL;9zl7)a01K=zVU2QEQRdT2288nori)0~cfdCI0Z3w+Y27Y|Y< z!E^6=WYF|tEHPm0e2#W4*D%i*#Ep=WnCX1nyaUl^?iE@9^@&GGH1lkard&&U;Q|zLw|>n71{8x8fZ{NY4m*d$-gPW&$I@pb>3HI=jX-S zS94>>O{g@ns>iRq@_X~m{YdnE=s$$r=SAQ*`I1LMaLu`57V^6HO>xIk=BF;!7k@=a z{nlrebQc64j9(xi!G^@5@rX<+m&~T~35_~2fa>MMbTytJp%lTAipS)#`HW5vT^x@3 z4Ufy`^t%0?CN*66zW)z6v?s+P@x+nB#DY)-fDi~7iI&pHV93STrdS5WJ$)a>6YMi4E(N`eMv`IIe#F>)GKqd_sGeWQchGm@^uoM-Am2_o-;Xxy$u>VNl%iGA- zaG;^2sNEZ&3kjl=JLjk8^>cudOP@|+dDw4qfv4A@qRmjhmqf0PNWS50(_Wj2XP>&(VAS#HR*C0BiA#)uP1cn0)0OdqT z2Y8N9&_sStROi%!98$BKe3%wXefB-yDVG$Q9;T9pq;V8{| z?GcG28u4|P|^DF#ZY5iS<$3YDetdBku=Y%;)0h|06&eMRu( zgq%>&IB6ikY|)`QWam_=yao z!qp0cIFkA*Q6*h2ajIOYCgCQsq6{i6hlf@xiFt26A;PmTTyrC~7V;G<471WjEE2|u z3(BYLx+m(pfyDTQutWe$oR#(>t4H}=qvwnzdNQpM6>|YoP?q$-{J1g zX}N#_2kH8J#*ZTo{H?e9g)8#K!M$4U5FD7;#BD@>r{>jTrO?3BTBFge81xoM?90c- zT*(19KatZI8hx^$+KOOa?8-{4OF0}QAP{)!*#HH?(5~B}IaHoop2X4= zU!9=^txr88;RMS*yFs~_Ts(>xoSS?ZZ*Pk9*hv(UnTDRT>!AX*8`1Vf$YX+Z^GqNX zyZF?QJh}N$oIsHj_%87`DRhSaE}a*&o;VUVM^XQ>`e%s1I{z($YvmK5T689+H8Bfk z)Z-4^vbVh=0IC@2QvzZPSOzvQ4}+u7;P*I)2?g3hJWD`e?i#R*y-~pmt%I1#h_@6G zg3t*Bgy9V5u)5aW&Q1`J|4sPWB)R$R{~D;dPc!7@s8li>dlX^D^wRONpXz`!fnG80JtsgUK$-x1Q- ziT2HMdK?JgGB3BpXA&WkQox-=lnEqG-o*@B0DuHgsK~`IVvW^QmhCFywpuol1+J9l z0y#iVH|B(um)zvOCg#mEfPesDQO7UQasmKga}I`Mg4M_-wp1>Yjv`>?6ZHU3cjEFZ zbfc!rP`FJqu%ieK2&Z9wqt1t=O^I}4-xw?^(MN#*0aaY)>LQv_t_+l0NZX=K{5aFE z_@x0kg^g#(m@zHs_-9%I zX@~3?ZINJ{rx@xPQ>i@isl{^v$(H|`)*>*{Zxt*;_n3eH-R$lR;@|)k+Q=9&ijofY z>!~eehf*#GbCxea#C2*4B&)HNKWTuAFEs{~^*F}e#hYU)_fOs`6lYhyrf zd59XRb;NTyrgcO^kt9ab<~9i;2qg(bu%%lb0R!W;SUg+HUT8H_1de@|3rHXV3CLHP zS|DeK*+xPx>Q$gz0{~pJqUpltEoqZgCRCw2i0Kc53hXbW4uMet7LZhB7v?`H z7}GLU6OprY;oOh_$Z6&Ck;8ZCEHog$07#$SQ0O%?ZWt{$G4OQ>OtuW|4}Cy+a9K<7A%z*tgWoc}FM=dgpzMuB1RYQi;DhD@gkkQaVCQV z96fRi3bojAD7A)`>gN@)(`jEc!^2a&FZ<$0&H}IY*!y&X^)ScgjS)d^jInkzFT$Z> zU&_3NN_Ze8ggO5(LA8damV&Eh{W&h!lE=TLq1j@-=?#a0(%o0^!!J7V4OskhRN(lI zlHk^3-?`jnXYnIAovqz8EjZ+6r7iLPXGMWm>3Z5LuWrV#t86Cu_vxdv7#sc}51FK|=jS4onCeqsB!5uqL~P21~{ONElAzCIxLLgm}OL zJ!o{y0RlPL43Fr8wZ{RI=!cCcCKyKqFo+NXvpkh>23W{LRd608Fb+=_Aypu7FBb=` zHdGr^ZH!0@(Z`APm3YhJh9oe8rjP==_)W~=i*T5Wmoj=rkc8c!P*=BvXi$Hz0*h-f z4h!fUD0CX7M|W}%P?gYKIA#QL$Ula6jBsFyoi&UZ))!210-?8WDiC^!#}xaaVi_ih zDX{;E=0h=n2#4ZM*zuM8kc@lrLK|Bd8t`RWFa?+E00LJDlVo6snB$LA!h}aTmVY@P zdkK5jBaY>vBQE&{dy$Oq5qd?Sikd-)tHucA$UQAMW|cPtg83)x2bi778Joa_peX+r zglBirhzI+WiHs0jX99u+i60^8cc0;AZwF;kNfwCdnYk$zw0TmAn1!2wX9M{Q{Z*3F zQGBvwRd?xjIEPSAP?(jqn7S#QK9Q8jHI#MuEiGw`Yak2ev7L*dY@;DiXh2AOF)$K| zN=#Ut)5)GBfnj8z1z$;S5YUt@!ZC;f9$upY{vY*PSQI()jpt&hB>6HiyqCK%3>KQ)qxiQ0qn@6^mgaT4Z z@NleX2IXl57vKaJ2qufApdqTG0l}bElZ<}J1W8z*c0foe`XViQOxuB$n6&?eI<%fJ z5Jh9~o;ymV)M1;Gw?3q~Tf#{PVAUxIHc%>nXz+FhOLhQDYA&_Jp+{z$RqCdyV2kd< zncVZ6wYMd3NC_UwA~eZhMJH4U@D8BnO(iLd-!wwRlcR@#i*L%Pl5he9Dpw1Lopoti zZi!-++8`I&U(Q60tfL42HwglEo@E)9ZWD5iimG?8V`NaOF<3PR2cdMJ4sD7fZe@=k zU^4skfozrr<@KLYlZj4YjTx7!#p()cdR9ZZlm!x;JAwy-HK9q8Vb-9h!l9ur|L55_A!+3I0#0WuhpagM?8;O29Nrk_X@GWij?#Nq&#6I0PC|5E3`u>u1?D}0sw#d=%3+=T!=Zf*Qc>j8?~Dz{V$T}bIs zZF@Sy<%C5!eTtN?T+pUmqql=AofW%?$@sNH5NBA+r6%dC_p|@B;YVGY0<)BBtUQ~n z!~?hE(?#eumVfHBnX6m!#Sx}ExTrfDAp40rqy;(xqeLmA#5FX3Yg=^tFx6_iREoQs z8Gb1%aJtk8VY_`>82}eRIuiQ?fm;S8o4oewyl44I%Zdq0*0E#xxk$sczgGrz*}W%A zyihQ@F2lAG@P7Wno^(P05zt`BnkmsKSG3x`(^O!pRSxSE(I>$ZOr;gv2?UD0JBw(72%;Rj0h!0WQLy-y3#Hh_MH{!WYnRBTO8Ohru-*qG6apEjRxoS$DOSFu9nvV(GhJpTw;h zRJcYAqGSu7QjA<#IgujBmx#!cYN5o69tB`ol@B9 z%?yZPv-Q3f6w4;j z6dhd_t*}y{vzAoLzk9C?tRV~lM%8=~%T|{iZPLXv%RwvB@C!x=oE691o*i6!lZMg+ zvusD5)9zH#iUZM7qe#7LTGH#L6L$cfqts2C)TO)BZq(G{1JK0~)ekVpt$d&^40c&P zyJw)*U2R8S&2wR`AK}ynShc8(%Fh=tdgV+UNo~Aty->`NU2=^HbUnxe&8Q6>PCDGz zgDup6ojMtk+RgK*`FPrJmewu(*l+6Ef&|z9iw416+v1bkaRRAoO&guGnno;({|VfX zMBIjn)5VP}*T7@Bt=zob$Q?XJ!2L_pjUSn9-C7e8XfV#R(bHf}%A$>`-rdbA^Giv{ zV?fc{<;^aV&8DfFy?JGP(A>e=14jBCBIHdL`-^4b}mI(k544Q}Fn!VYnn(GLGV4SL8ix(kr|HH-1Q- z=;2kP2I);sPV^1GgY4vLzJ)`X-jIx( zL5l!XJ?Tjj+P%8o9IhX9vLiiivWreU$DQJj@<^o~WR$JK1nd;7zUhq&>jxbLx81Aq zVe6oh3qTe!puFo?)$5)7>lb}iU*5m>UF^=0?E4tsVlA!|@Bz&3>SFuD(vI4!loQ-` z>eU`7b&dvwE8Yj)}BiKr^;^=-R*J1|3E~kQ|1@NBew!Xq8PVeHr z&aI;a9wN+bC7+VDgo=4BM>Ar0_&JMid!@fs)b zuZ5;KQR^SSB6{GKKqHmx?l@Ri@yT28*&Yu04!9oQtGEvHtN}E{9-}-j7cGCA6hHJZ zu=Ae;=t45)6$j@{?;czea&vxCLs=GsOaVC`z)v3qKwc72&sPs`_1@7l`c%5a4b(>7 z^ee0tpM+sV$nX6Q^l9%?FOTn1dF|{?<9Z*_{S^UkjPON}@oG>AA};tIK{A%Q;BFl3 ztqb>h&#?pG(145d#moQr>p|^}4-!GsZg=0`>ZAvqV2vm zPwLQL4dn9%iGO59uOA9c0CPO)Inn94U%E8^1}S3v+HVIWbF`$d3B-NoSk>I_uUlJ~ z_cV0)KmZfMKn>RrnN%)?qDG1tl}@Qu>lK^TZn<6W7aSIk$z^ktB>^47E)IvCbu~y> zR^tND0|=_~A23jGkg(A35X%K)58#0gOXYDZ1p!Jd4GvLrle5$F6Ew6Cq;l*|ge$V{ zN(CW<5y4M%mbU-a_7+!&12zIAQH|@Aj0E8%_ZT@@d6}6jrNMXXq;!jB>dLWK+Mktmm; z+m&hkuuL;H<{2u68##9LNG2nhNE)@=iFQRG0Y>OPwsiTjki&xw=CP8b#f2JzUH(yo z`4ebRaPex2apKboB}-P~31CE0XjG|Fm8ej;Cqt}6Z+2D@p%o)Es$upco}~ITs#Z!hqrPbn)X4?R!#&Ul-NsAQV_h9)A2RC$8#& zD4Pih3HYZREkg-8`2-x$3u2%OBaHy%0Ops-_TY`c2nW<_4+$C&u8P+Ff-sD)G?Ng- z5QTU~!7!#l4HCXGY(Ro?J`@o~=`h;^fnFBm5DU-BFb~BTeUy#`4CL8Spw+0*k3S`x z(*vv@ohTR#U<3d>H(hnCNMNym(QM9ZEIlG6=#kZ2@nK=jI4qS(l1C zwU|cHR3-knBMPNF(_t9GEjbBdv~8mZRY86kBWlk$?u${iC}JDQVBR?)X6f8`Oq~C| ztCpvhc|Q7!PP;tAJY<)kdAonPK^f_)Yf1OH3rk{fxdsx3hXVv$wwmk_B>?Y_ki76O zi%2>axa_!-p~O0Asc3hLp8nufY`Nv`^wvL!@YLx*5I0a|bLC0#-hxZ%8J0kK z?j3!e>5JhZS&K-de$Hw2?FR%>8o5LHxZj81({5r&fsj6TKM|#1O$98F*TDbqmGDiW z2oXS);S5+oL)@WR^%H_%z+g1kaexl~vmkL!a5mdv$x|YP0lu~t7Z;5XhMT~e9v~1e zD>N*5C!`eu0vJQ_xPTZ-``~^$7&I$ztapttpAVTRz;T(wcvw&wXi_MMATF_qmJw4A zS*Eow^baQjQ2?q|mqjy*!DkiXR@ATvse zf(1no0Vh4V5dClfkXwkI2CcWIHX>$p<)CCMc{#|va4`x13IpI`iIe{#fZ&$BREP_l zfJ{_|ZI?&v+ZMjkA~z*dnc1`x0<1GiD-}}-fWxL1tbu`OYBL`y03k3D6t+i7Au&|L zgaOEiPJ1>cN;DMB*3bq9rH!*~#{}p-bHPjmz>*N=c_-_KX)<=zN}tfi=2@ zhphZ(OwhN`iP{2z2v}u8JqQLtk<}K8LG=W+Ik+nXUC+7M_>rQnh)ApeMfZM&P0 zCVt;y>&85U>Rv`LiIggcY zuWG0r!sh5CycNZs7&MCt-N`;T7R{e9Xlg-%=<`*80n9z{qfJ}jz4X(Rxix7=L-A?f z#+hfEmO!UL5z>*)^^`^HFq~Ok>?C*(a#~gb`%Gb6GAE7DhDMsLLk)^iTl&($?pBSQ zqGMx!8^NgJg9Y#`OKlH>)}rV$2-SdXf~i0RjTQg%v%hfUUjtj#$4jZWB>--J3&8~h z00A+~I%!Clx(t|>wkb}4GeFaORW2B`1P)4qg8Th7nk%M<|MTLk|ee8~xRra6Jh z$VdU-Eu@AM{Jk_R7<6Mjg?Gl+J8W;C>oNa1SxvAC99*z({El65B-qYG*=k4l@-WZy zV~8FE?B>ALPajDUv;z+hU&fI^0Q%~#*`!|ud77#N@!2cWqVLSWkY{&y)S;A zInSbj=RGPaXgKN5?+xZV9|pv9>b^H=h1z=|cILc(HaE`>?o$^3o-7bpK>WTz;*O8v z&gSk?0RHSj^!SdiJmu=F502KU0gDWe=x-(3sQ~&=m4% zWXi2u&c^3h0kx)Z?lunwS!DRmj{*PbK?PDE1sVW)zCV?fa2s(9C=0$0iXys&Iwm7X&6!u zEaW1iaK1(>-k|ZGv`ZIbvB%c1xLm;vJ5nK)phd)H&{To|YT_S$Y9gzq9R+SR+7SQ{ zz!NGGq9On%!9d{-p&rMqmCUT-#?R|6;mq3PdtNe}_@F4Pf?RSka|jL!YfKNQateep zrYOJ<|L5h#Z-wHGhte=}ybBsoQV4dgt>jArREiWifgEC`?7~VbGiUqyjS02^FhhYH zA<6>8%P2EW6Y9?M(DGU&uJ1TtAo)x&ugd}sFCoW)FOy(Sz_Kp^g#{)@Yv_${DgdnbAP@uLIO~Eq z@njc(GCgPK=u$BWS|nC5loNcCkVI)an=?P-GniZx@7|5?`m;8X06z=V3>d3ElZZ*s zQ&jk%4wQ~jBJ^qW05&J|PZmK!)lM7rz!TKTI}3mUEH5qmj71F*0h90ZSOxfmuS7*n zN%eE}@BksjO^*LKfjIl&Gb$8MLXbx@=kXvf3xrhENWnYV3o+5CN<}m*M^6h)?@O@I zLS*ns3G+?QAhOuR9htKb9Ddk+sJB6!wk` z2X04!LjBUw{HAmkR@73P&0j!?NvKhV8WOowLSP;bQ4`f_Ml%aqWH8-;n|5tKIUqp= zfGE8t>eLd@Zs7nUa0ZFP2JdtNZ^12l@C>3VBKb{5y?{IilUJ?+1F%6RK4e;9HExJg z1pm;QEFlHJ3OW!0h+2|KG~l43vEd?hRB7Q@Sp)~W&@SS&4Cz%^Ng!+_GtF|Uv0!vj zHdSHDGyeY)v@UK#GZsN3xz$>7!cdXGBq=G6h6co6L5LLpN)~*i#E@v)L9aEHHV}u|& zt4K)=E1{!HK_QiPwUE9m5RwvQw*(Q>aS_pH3okJRgw{2{FcBk=5y!9@nZe9%4HvC* zH;E8CZ{{bf11emAn=pX0oUn9;R&HiwxUhjBwgCa&p+&xR5UjyF0{}~H_7aq|y?H#; z?b|;7e$QeS+Zfx}XT})&l2oK+EFmFElF-=Kgd`Nr*a_M9W$a5TTe6e}356s|ipH8P zX_xM9zo|a={oJ3=^ZhNar{{P5;pNY3uJ?7G$8jF#ab1^&^_yu-&$_Up1xN3&^S5n} zHZ8D%DSR<0oOVK_l0n2n)b^}3z3B|LpAdLTSK0g2=i$OmH8-=1GiSEEblL+2iM$`| z2B}X}080_wkIXv%xNRa4@6M|V;~Jj|=kT2paePY|+^=nMu>Xzwj`N&8v&S4*ibs!! zx|S(w9dgT}ij^GW!g={}%IjMkJT-X6E62#JCxPSm$5VH9pf_C zlSSQ&D$#YBmipX30XuK{$oXJs-E=?-=8YkL${E(5DWPCOGS_jD-5_BTUuEDESJK#*fX^!46W2D@p9tb{$3EVWB>60c`AY;kgly9c z(oc|m7S9`RC8NNvmK_w zb+XJYc$`KwjdY+2vs^DlF^|&D#(c7L$}*eE4KnA!iTYQS5-oB_^NvgOjdv7EwLpO}BKo>`Czm8iL&0ev? zR45pv1}1uOYn^yn9Fj&Adw}Dp>Bfq8U4R?zCkKOEailM2ha<0S{8{EH&vRIHgZBXA zgKo}2(zsY%Lab$LmJMu&PXy7%`2mY8g2d!pYB>JpG3Mc6ZWAm0-8Vl>sJeXG5nYZw zlCy)b{-q?pHKR|*CkAlHVm=}@O4bFZ1|O?A1z_fyvD5RHRKDR&}OOv7xdJWlYg`Ja$DnZ?cG~KntA1*Jv6Uu%Ly zfm+$;A2RdW^&xA&fDn-pXAb~SaL?5MZm1m9eohjQtNisW2>v3c?+)V52kyzTY&qO&=2^3;5= zO#`+mJa}WDAnh*d;==fauEQ_Yci#*}<@2HeKXu@`qJ_8VMWH?U40#qe()!*FTvkuQ zeGBnEk8ZO9?TfqsWa1Eqi@1Mhas!`!y~wvF?!2X$3%)YLWm^&A4`mjB7xV{+EIP1Ct{<-)m#u!La#H&fA6BuM3}+7>}?Ur%w*3Zp#Rk zc)la%nqW#_%;a;FIC01ApbxvBU$raYdF*xB0{1Duhg0Hg>w51syO(=Cq$<6nu7tjP zV%IpKGx;La{rTkNY^ce!-PFqW?MstWAMC{6*}eJ}y0tO+Y75%22-veY|9pX*V)5Hg z3l~m{O-)Nl&PdzO$QI5hPR*!F&ThA#-BmcNJvF;ua!${F&M<6d(CKB!TqcTo=wRWz z7(&rvUT?~pcb`6-ihgP%`P#!!CKmZH({b+#@Vt%=@3_dt$8tC;xpc!tn3{vM9CNlT z5d-msgV}pyB;(Q~R~%q&ia21QlQ6gIPh{XCE^4u1YV~Y+2K|ZCkTuFi>rFI^F=W5C zOXf`s>)fd?xBs3_LbeHiiP$=*5FmLmZ6(ikBkdC5y?UDHG;fbRvcvvs<^FvS1jOnZ zR9couBvIe$SKs8J35cONB`oTJKxS9tnY*XHpUfj@!7eSieV@In*>v^&CmB9Ht3My% zkpMvWQv-kSw1b-q-p$3w#or;o#ToAyj5jnl!5g}tIU8`+$=|~_059k466oRNve(!5 zw7*BH%8@rX3b~7hu z>-zP(?d@BWlUr+RTkHV<08DYc|LX)HB3ZvkU3VnlDCj$v4l}C3#w#j!%k96XyL-?TE?jV12o&tbU1oRmw0Pp~jLPE^HCuwdTVQIO=o@d~X!JaL9Y_Vrs^J8qa z{}@{X1OGN{_RRmE2mByjCW$1Y+=Jm-RlB2h8=zx*g8o2qSo|p+SBwEgWgt|H~JH zN8`!t^++An*qc;pX@!M z#~ysqCG(!1dIGob$vTYfaU55%ZAbw1pZ=MIgmdXuhNjX?|1@gUF{QbEf=a`qi@QH|nYzaKF1`Jb=;}=si#oz_CAZ2}AnFPr9cr zp6qvfyA3*E=&By_)f00A>xW?fF9_l1~7MKHc8U)BV> zg_%C>uhzRN^=L1ir}l@wwb#Jz3Urm`0Acjg5i)4B`3|4>%ZQ!HDI^3s-8)kT%9RV` zlaOGNOh|EwG>rS4Z*X-D(dv9~gS6rW>@6ak8-C$7kptS<#puoLzf%8DChy_z{#UmJ*A_rEPGgRQ#X+kWfefGnz~dRUhK!RQ#d-kz5mxN3ZMM7%9VjS$))1= z1BwGqmuBA+KwH{nbC(wbKu|oXJF8X8BCWt_q{&V_&)fATCxx6{X$qC6)HsSd%JjFr zS`TW5h#*Nzx9v6LH5D$<9rTIb<_BhP8}o1_-Q zPt8Q&qGJ<>;li(2yOieUcL<{wmo(tkd22iQF>gMQMW#|VE}Z!OXEZ4A;S5!j&T*K% zdcTdYHqbio06+i$#1@S=JR&kGIwm#-$(bOyFD^MHH7y*;fq;MzG@?L_l8fMAtJM{i z;V=#^5M7!Kg>Y*((?*@H=;WV&Pp3z{0Jb?AoSfg7CgJHz3N@EZ$eQSjQe9j$u2r|Zy3y{ zvsB*{yBG6mSVYdyB3DO;NBxK*gVK3B0ZRrpT5eGGr98HNuZLmcOmhAZ(xCYAzwQ7* zWbDU&-o=9f`fg~=5S68UFz(2avu#(HLot@K8Qr-V$7QeES;%03owf2;O)7KdZwfBi zSY}CAbnHFG(6PC4)>HzA-=!*3ZTkJaqFm7WgRXZ-X^zSuzcR{iuD1lBbQD?xngP=P z+WF7fDTd8zer^7r$%V~r*kjAk@R6BW>CepK!sZX>&Sm|z`Tq$;|KtyAe>0z7DF(hp z{h43nLQE~vZ~G?eANPC}WagN9cAzQOL(dQ3;d@}v>m47f5)PWjQnQC60g9;_@iN-Y zL?!Rhq6UKh>tp>Z_9d)7P3@fisI*o&4xigc^i65&AwUT=_(Y9#R^1d5!vgIAiidYL|zM=Wot3)22l{c$z-@RY>c>D8*^{<;>_`d%^ z_u@0B-av7oMNP`zJZD6)b_%S2#5mrBbt>58A26RaFujTl&6i1W%uNxOB?jpSBlN;E zlnT@^0qU;gm>s8cODoRGJ}MjwgS`24+PxI>o1c?SPfehupcO#=xA2LJf^%|05y{CU z_r&&U;JSla`u^t} zv`yK_pw7G*;IjXIQqzY5g|D$MWYDLc0N`BTlo!t>QuiZfQwe=RNdT0C&!t>D(uY_9 znf~cH^zk@z)XXp3J3G(CEONN$_0IRw9;m8AWeWyT4;R%%Mj)fvR+Awp z9g`Z{Zu0xx{>9^sF%Yv)G0n=wAn1n9KDQE>W7{0Ca{qhQ@wby?D!KFE@HDmQPHPT zQkB05p{nY)zkz<|&Ub%f5j!Z2jPA1W=VFm@f5+u7=>N~q{F?*(=06-; z%v4_^CDAK=WetlSyR(L?0&+jvD)4d?`*%94q^-{S$>;G$_srr?BLi7#}IY$Y>)eGhtqUUxZ-634nrP(y@hxew?9atT;Injiqp@0568G zs>nxDkONmxB%OKG3Xyg~*t@}kU|rvRhWk88>}FmcLztsC_Tkg>5(4KNg*o%YhovV) zp3N_uN55X?nLjNx315CcFTx=#{oy?i@!8RZ;d_0ohtHCX5a%q0JnASADj!!R^7EmV z+Qc0gY%Rz|FrV2OV~Hkistr2nCC8B4`s?tKhUtA~&DClS)P32S#R+)Qw#r8rNK!)H z_>IOYzSKY;Q9B!myhVk9A;x%+Wpa*1l*VN4i~anoFX4t@_!a zD~0^U0bzx}C%3oN|~t>L(8jLTiD2-HuKK*sSejIc}l(HXe>slfzuZk3JLQ zj;{k*ny^=>T+Z6|?-k6a!(x})l_Xw<7$T5wgsLW9-X0C-FHvzff6;uQ9dd~A%m)vA z9s2?gN`au$Wm$A=zZIT_B(_NUa_y9(f)I*(ZX^#!@}vh&a)TNv(e`CJih!=7MWHg> zXF&0qASt?XoBI^Nbx&^A4+&$6`|YwZq(HaIpUwKMjAhLv_exNKIHRsWku+1EX8Yv( z2UVZZs6ho1K%JmtRm=#3(K)`oX@~Oe`P8#jOiLBwcB0 z5<*-pZEL?>ghYT`9I%d?y4rmp2RzCMl~jd--x(dthoV9B$QUPQ12-4+N&c(kjC)U) zi{VT})=J*p2~-D1C-mKBHYb{U_S+trbwijA5vmVd0@pe$LRd-*YvOAC)i<7u_ zP?vbvj5|)3>Alp+!I8P93p1`UHs_4BQWkl%QmK1N3%tCvP5H_7h>if8WBT~afu=FQ zBzE^R^Kgz``)9_UWtnS(P7*x!Cfs!O&IIWdQ4Eu%*PngB!mL)V(d{r=z;|J@HJ}2* z6>q=ubQ^^RUOkZ&$bGVY_4y5_S3@Q*KKnenBlf3?^3WIG0kq}$eT83Xkl6tdUMjG6 zlLZG2N^eTGQlQN-Er)~{0j(Q74Ut8s670T*+@9*p3*E}NePL7KNnY>a6w2rCf54sj zY2X_F_))my=cD1N%6)jJGkaUIBd}}yzpEm#>4XY28uSCU{YOer(6FY`yLU)q_GJGf zC6x9i!m;8Q424NgLs-jUC`UR0h?LWV{DWyueNY)*rSVuQ9pumzm7@fY(7LsDq$w1f zpaK!V?)?q<3e=b}30(o4X8(}>!>mKy@umz$Cz$QP$Ay#E?|UAP4CC;Pv#PaAf(cME zf}RoSP+eTrHe42c7=&*sgw;`9!h1v!w@<`uups#&eH8mP+WgR<*jUEi%gMmgTa5jI zu65L6FFMg1lki*vfI<*?`E?3Z%5q|XAS>+JI?)f15y$8!YtFvn&>m>sXEsTN6n9_c z9kph^*^z|gp=|MbGiZS`Fxbm|s&!=DgjYL==6Dh<_%pia@Qv#&_%F}*OlM&r<^@@~ z6oTBlT&N7vr~u@~Ghdw%41S#pIx6pu1K$e7lJ!s=dm;U{*?=%CeD#a{9% z%|w5)gz#+Qc0Ns7qUPsui#Tk_;%u^L;zvhaeR8k`$R)R4oNB($oC0X0MO;#kTD1;m zm{*)9rrMI@D3MmtOS9QJJ{}9nM=MYZx%I;G)oL*(B8X zv)2rHY*3j_?9})|apI9aTISmWxg{Xo%2PfnUbju&`3ic|!xMpHEmg&z3sk5H-H~i} zvDQaa=vhtupHJs^CA@g^KoRJeLVDLFvyCgiSM(_ZO0v)+UjZf~5Vj2RG)nf9lV0)9*eQnvtOUy7R3gM=VQD5rwFCdLh>|wpzx%d?m@A4ddM6iIY4}- zv1>Pv!=r4?;EdDy%APT5rm5jBz-8AX;)kZsmu07LkB|v;okmp!;EPyOLbh zxJ?OkBmoI?{+w`5)#k3ZL7CmAa2#CiDQ;JEqo!!QPo5(R>=a^593dT zHj=|z;ZYGo-cq4M*yF8pmN!av?eC#Oy)6|VxE;RPH5Kx4?bda4lElhI#MGOW)Ngw; z&b=F*%#u2CwJ8}A_Ws&PAqsW93)J7dHbW2QtI_R(ajzj5`tasqttndXHLMg};{MU% zC_(4!2Xrx^TgGrMxxc0rs#|JJN+(hv-z78 zJBq@AlRuL+;cxz?V6s6i?vBAo8~>BPmG)l2>&1&7Y$)qblRH{t+uu)^A9#w z46^y#^2`3l%11?%2(*N8Q`O^AqcjD(2Tj#aD$Prc3yg2pj9s;E^qhQf^Xju3)b4nR zL!W2D8&R2nF@>Sj1LqKcVSE{DbQNzNwd@N_Cgc_Z#g%;MJOGK|TkKUmjKKHK6epq}()($25DGUc?Qv2Sn~W z7XVwPi&Of>NQ=Grb;XB~N{i!==t4*GHgQlNaW*hF0jR%Q%WV*(l5W&{=}s|D$0S3KU| zE6YBeBp{h9q%byR2p|3=ZMm%F+rwqw976$63-TG~u`G&v@iI3CfcV+KqYW+#;)zuB zr{@JF`H}&0`H<*b420VpT~iG!uJNp{l?)|SS77fecmYjao{BoX^ERyOaEV(Ab&XHa zN;g_WFVs?cmfMsrcOL#_xANa zcsMXP^l12}2>A5b`16SuFDHLU$p2C?mX=pm->kh|fA{{w$4{TXY<%7P_Q&@>w*V;m zUzN}p!J5jV(PAL+0(?vsjShc{!BH`kPCCfRW~6mgCLNIA#;aAPl!k*axowtgB4n8I z63yj{;^(Ks380!c1CVZpY4F}-@8DvZgn8-CDt~qM^8gz zn?@RS`gjPCErE3WmNIo@+hR%nDM>&@_zp=WUSCklU58#>KzP#XUuDP4& zc>{?mL1DJ3GgZU?e4A)RgFwbJUnrIytc$U#gJ+AL2SyAZI`gv(X%L1MP81XvtQ1vA zr8A}@Kn)`s)w_b~GtT1g$bV&hE05yM z=kpQawf8SM;g$!2@KQd7aw#}QfmjDD8=RXyXC6VjhBV@ax{6k?N6G?Rovgc_T=imyF*m_$jqXos>>f5>dvVKm_Cdj+Th}MsgFY-z{@h_S zD5s=Ji<&u%Qz+o^`z&TSlnVyKFjzDfAw3c&hN`6lwqDsGWkg{(%s^8Gx#S9jz-0ho zQxYn1pko7nrY;;y^r(L46;4{k9+pBOlzG)Q`rky0gA1fKYCn(*C7!z*AK_ z61nBU*!=PYY`%JTl!~XFeO)K4bin)%00cHZth{=3cYm1J&ebo;Ub>O8w9_s1J4Yeu zGOSk-m<6}t2yPh$B?vw2Du#Lg{T>7I<$xS9OyFy!IS6g(Wrpeu19{<^p}3h?0ejfA zE=(MM545GwX6VqDB>guVI5X&(9Vy+v=r8c}+aR>wqkX_i;DzIa>jBcZJX0BJ_5sPnBuccJJmOneReD7{`DN^nsy1hJm0>>WK+i{IQT(i#%wS5Lavi~>@aIf?p2ZgWPKHjJB z=o}5Q<6#B`(CR%vfhr&B%c{bz9P@u1Qm%B?fh5|zoNLB881N+8;`{O6ZAz#CN+_rU zm?L6!h8$*u~J$P#vIj+b|pT^R85Ut^a6Qc{1&$=S%s&C1K4R#Kv?sO$WX8s}v3(FpNkthM&wthiY%2uY z2l1;a_$|qlT@Pgas~+(0S86lIC-)HRNjNlTU!;F$$3N-;a;ZUq(&DJZe!~$@%dxc| z^?;LtZwUEfn4GKxR)TCF&c;3O%V-Jd*z`zCd~Q0U_>u})3|m+dc$q`+O7)F8s*-d? zPCb?E&%PxQkHwO2b%m=)ACp$)MnNBmjXqs$ zm5`f!qsymk9c_`-!NZ+ZX^}u=b(YXuv~Wu zi|qtfGewdy=|<)nM2l& z@VO|Nao;Fh4ykR{Y4wxZ3CpY>Gr6y7I$xrPSYDn@>krFoy=cLTqzhlVyI%#hh?*<9 zgs*aaMf={`D;56b9MBccb^kRok}qkOLx|vm^V2pW#@4|_GzpuH;^Tz)AZpy;X(TcJ zo_s9f^1V(!VnPo04(Y_eK|$&PP1pP3kSEv1oorNSpJ$Q-tBo+Jf%J9B7?X-~;V?sk z6X{9jHYY4orcu5I0VN332FwNa|EKt4+qaGnham)zNIYXkpHoO)L9LEKiTKZYf&|9$3yK@jC^F$7 zf{e~S(OCYoo{%{~rG*1rJOSbp?2F}NK>-q#T~8d#L~@zz8UEmD#OCixy0bTHpEEEi zJnKQ3B*=b?%4Rl1$wdI$moo456U4?_LZC+v_@-ZFrJk67$CoVoirZUOLkPnWa)^Yf`Usu9 zDlLzMkQW%|&ajSa=h-r8ntmL&(vI5gJHtG?bQWQ}#bQ5B1(`Ts-#GT?6XtCwyn~m^ zcD)N4&93+qPqUbNI4bKaQ+?O_5r8L*4on(Bk>(SSU8rm<{avW619Xm{KLUAe7c>I- zAZPAyMzX7-*a()ci3PckYBOF6sgdR={5_*1*0)pKXAg4F&BH0$Dzs;px!?3*b!G+U z96+pAR!+*@=eMZ-YxA)p>3Z^-^UknU{jxLGM=~&;sDVZx!NF#SEA?S(tZVLL5oako zB#g?;^9?zNK_(3NX8I!c#s7M71j!^^X-iBN*ysE7vQ9zIs)371zww zr3fi1H3W;gcoz@sRAkmZcC1#)9;*mGef@cKt8&?-ZX7LdJld=5+MRH(>xuAzw6(aE zHQY*j_5F5dAj{wDOv3orwi}7+U%%amPeSdfi#fON0;^MI$V;soGVxjM-h_lN^Pa#g znRH*I)PT9itm{R6AedkMwy!_uqWS}wq2BjNln!sF0rjhk{)5V@31|I(y8=-Flr|wp zz-&PGXHO0SS^tGP0s`-T_T+wuPb8ANtn3XXr41F8TR-)uY_?Z~Z4~*5I$K6Yo=1)x zVYlV1t>4+(zqYsE_;(@dzf5=6ufJ!5O-IM0f8x#5)Z72)p8t* zCerA4xSRZPJ$3qln(=)S3__385)_g%?+yrK!? z1AukWATnS;NYXM=$Ek9Jn3w16fsE$Ma)|b&SgF4riq%_rf^%@2d{SnaB{tZpv3jH- z%jnz5wa;}g4UCe*-n6&id3bE!ZXdGcMx#X*)jiC}MJ^C5>h_g~aq3R>|h3YUrtTc5r2Me3~FJpzl?QygQbhdg4~1+Hxy zr=H~I^66S8ncQ45p1u4Fv`7vV&Ags-GRD>^N0aG*wo9 z_BSv56`pKH_=^kL+IId5Ojp-fSJ$_`zD@t=p#M`R{@?r2gqWl*l^j0}p`SA5< z$ccX{#2k7D2$!Quc!F_DH>3E81y=Jv6yn#%$sXS4WF6#X-9@|zQDHw6VpVyPc!Xt= zGCeDm-HTIICW#1$5ak)gp?7fJEQcV9l>(^|zK_IH6$ zfk^S^l~E1JaxuYfTnwmN~!uGl?Fr}b14m1%R&#{|X+f#rwH zsIs={8PF(>Ep!0T+J5<(&D(lOVI^@n4?+oz?tR8D{==$UU2BiHQa)F&Xeu^{*CgP2 z;=3JnLL%zP<%8eSQk=;CPZW6$y}ltN9(lvn?E9hk=qFdbUX7d%OnbwsZ>nQ#UfB5X z?3}jNqp9345v#ZKUaN_RU3{ZlcjNBe@0%7M{y28N3;NbYkP-NF1J0rkoH+XGG}n<{ zFqG4v??vRd6MbU71m~&@g4fsYZm(jlL@g5HXm-zVHgXM_5V~OV_|wbqO>(L2>{!st zMB04iRO}uD7vg1|<_vl)hmePm#5M)3BQmDDMUqhhd)!OYrS072ldMNZAqkYgYSS=9 zUAYA#A$;(B&V-r>Iqy+|E-8P){VTcPZvRf%!bjq*vPDCGWRn^keWjPZ(q(h5WmtN{#uL@0Z(jV$cJZs5dEpKNTu?IK+$OlZ4v>N<}A zA@SbBtFn>;6{G=|Az#S{Po9V07kFm&N>>Q48^eA>ePm*JRI;~~wXQ(M7<-Wl2`iiS zgyF7trb8sHv${QT$HmoG9|jIv>d>Iv5+bu8sN%+jrk>Qi42wb%@Mg9L%5+jsfypvK zz61$Fi!!B5%t7agXupF-7RWjZwr?vd`-m@vNr0RBf6L6rv+ztBfV72hlhUg!a*wu- z!e-I*qtzz{k>@a2uW>=6F3LnuCK1Bx`l2LJZWlM|DrP18AVgR7=2_n9uQE=ssDpwL zcM@bkwR$Fj--PSno~BxAucsw#vF_L!^62rq4k{Y{%P3}+;UNu3(@bno&Grnd^SQe2 zvh_zLJQ#!LmS48TS0SS^o9KWNT&4;u<`o%1) zM{MrXgS7n)@$DgRSt7GxZ@>Q$w8=bb+u|#AX-$BKxufV3GXrCP36|u_G67|f`C4@4 zX;uUeBkO5oeU!OF1g@qz^A%0P@iQTYK(3HN;4>G6X_*JBO5&W$H%e^T?{hlY?I53@ zjo-H1BAv9iZNtf~b6nHeS{fZZcS3Ug^=ztxhdU`u%?I3z9ZaL$OJY>e zmZeD@k=A9Ku-}!{*_z`VWDi&Y82PMYf4 zf+{o+;_#$qa$*Pbc$Jrhy_mTlFw_$Cp-`X7C;?kSj$s!cQYox%&)~M3mvQ89D7!Fp zHwj*x?L&!ssx0CoJ4=4((oF9D-yxwK+g8q__zdeLB>x{`nq>z!g;bS z{GK)2Ly~zhtZQn@omjl65az6I>$?_C|F^F8m~DWJu+YveD&>9;jRQSw|188Fgse>- z-agQw=O13g$y#~!Dy;R-PtwXHGffa#%+!a>-Fg+C`?&n&C7@8?l~FN@5D9QE-e*N4 zwXA`Qe9iji2jRmvyW_YwdZ(i${e@=^aU3)sanfC-GUGWpc1^_GzO#5zhoCu3Nc!W= zcm!4=iDF zr>f;AGwnP%UKejERT!;;;kXc0MClHAZlfnI$svQ#c- zTIP5rJJ1*lF+IJoR7Dh2P^d0cnW!qS3S6EmjA?!lzf=~jLb_TRpf&OGTDC%+Lgj4( z8)jN9N8aMqdeJ<&YyAq^?$-x*uTlO!pZbr@VwE_@DYKV1ZOUwm`xd^G3PYjfd> zYo$w>?J8|=x;)le-kE8swtp)5x_0JkS2eTskI&y+Zmpve%0Tq6mv3Z%{O$D+6wLfh zByS9I`JS}ZA4CZEsOPo&gy@xbZg@kSPdS)%+umWL#@qHVPy5Sp0CG?1gM;v`i)USI zmv4W#4EdhmI;?y6V8G*jJdpt-hN=<{Pt1=0w%>`ZHok;tfOWvZAIQZfmIG|?;^oc4 zU>>sZi|xf^$gAxna zUA97oFhQyAqzaCghbOVT`7YC0g;d>mv-6a92BB}TugF*I%8;XySn-q5iAecp0!=U6 z?x7`mr(ZiMNjyCK<^Z?yK@Sze!^JPQDl4y4*4C&d1J-AmG-$_JS(Rj`X;pl&w2+C$ zS6^EGjflIWQM(_TODYlMh+HD&`ELtXp;A5qe23{sP)KfPIc7_JbowEb#Ul^Rwk`{tO}&1-gp(O+A8 zav^XZ67|RnA!U;`=g5RQDk%~MqG1$k%Co4+=%B~9Y3Cz*q9E*i2n;u=rn_PCG$Np0|&Hb1s(#R#u5 zwWQg>f7^GzgAZrz&hD=77KS_9rBUz)ac86sM@NY-nf6_kO|$)D^UGIU@hQmNuq=Mo zG4p?T@y-aieGMQ}qV+W;jtjS+xay@fe$$74Wjxza1 z-!;hv3g>(~^Mf2Md5c14&a#rc;kifA=nc2hVjOC5z9d1?Qjn42qlYNZI5I0-k+ZWq z92%K4D!)%f?!j!8CyK6MS99Id>gsh@8PD3ooyIF#zfDBhC^rUC25$j}{@uR#(^L}& z<4om5sH!5ev)Ly{FhA{!f0=67&Eqm83W0`zTsa7oyr+B`C$ymn(wtXt{a5oC$u=#r z&zbS^m9+#vKx4=J^`u;eRf_lFsX5=eK z2mb`nO4bkTo8es2>iWJ6x^@uuSoP6i7H~fS-`ca8#Y*Yd!5d?2c2a0Gkl@s2yw1hy z&kNT#avzPS9KfD+M$61MN<;FKY-AjFFuP)4dND#cb1#5>#W=bjS^S`X`xT4rDjUYE zWkNU*AhdhOO`*{`=$0_@BsK7~NqYrmk2XU1B^&S_JcSPnL+p<{L0?d$;`6AD@p=** z8JhkL5J6r6ns?5qGm>*(pz8rz>9L_wQ|=I^^rvliR4v-g1iLyJ&#R3&8J7ia)uR+c zFL%A9?J}G03zv>re@1yb-)k8rd51B(kT;wbN14l|)%B7a&(BJ>GL>ep+$)vl{X(HV znI3zjXbI6Dg+ISunYBN8I6`wfSKu+W2nt9Z{$m@d53UK5W0`Vjm>;=_a)pI+@#fAI zxXK<|Bq$^n$FO2Z@eRdc(wS8yvM8hR>3BtK9}u6wL`p;6TDUvKB}&|Ul|;f;0g3TI zH8E+u+}(L3%JOT~Tq;Tu52PH@St<@j|KaWu4xh^&%@ib>=VwxDo~5Sk$n2LoW?5KH zzQkejbv|!dK6ySrz|~E*Fj&Q{@a*BwODD4q3dzd_M7|G}^NHhVbN5Vi{3Pd}BD#Bt zVQ(BFUz%gnR_&Ex^;NzKVp6qKReCP2qN*zCsr=PzHdaZc_08vBSKm~K#$0RVVYkmt zD?IaZaOAk~qAs58znxHH258mnPo z1NZ?wY1>r`Uf|z%KZ3~^QK|yg=5=z9BFI;9O)GR6=ky@Cv$Qzb)MG2;>RV^SpYfy- zF9K&Vi2z5-nvZSk3=P8M?-ImybyBk6qYCcr;;Qsc1X6!%zh-cFXC_KzVJ&Ru9U3^x z8Myy$D)4-6wOR;wdv6Ex54LmeNMJI7^@=|G{2BA?J8&GUqf}lAu%AeaWSbuT*jX5{ zja!3`McG+T$D)*dA4A0aW7(&!BWdR5r2Cr5acBlIKi+aLel`j5SZ*p&Go)uWnT%d9 z_0lohzcyUKbkj;Q^@E$ov#RAwawddeS2Jffgb2}_q>tj<&!W|pDr=N>Fk4RaL~%d*W{maoMVF~G&*_qmIJ z-si>jvt1T)Lsao}f%8+*m79^NqRO{Uldmc^ver&8Z@kL9K!%7^ zTvf>&ec-Xue)|53${n4FLn(Uauf!U8sP$cARMXz@T&mS6yHA&F5dG(#DTHzFi~$lR?I^!5 zY}|)Pf*pX_4|=HnlOeVPz#0d~$j@dpUP#DOL}XM{G(|$fTtdQuEjhAz;!nA8lHCy4 zwab&OaO~Yn|HTsx3~GNK9(~33r2bQG3<@Mm#y2MzDHI{ke`S0e`J9`s%7Z}5jv<9f9jUWnBp3M77$$0-fi5X`{Ci-Clt>wL} zi6Q}3lJP&xsSfgI&WePm=7)&DuvRvOY@e*=QGN7)x$55Tgeu@;6@kyhRN&n1Xe4x- zOm;Y;| z{5ti{X3)D=5#8FV9j%`~t+w}CsH*Mz!q1iV;`N&SR@lmis4u4iHqNnL(H?%fB@zA@ z-hz*KASj2AyqAH05h?K5VC49^%Xsrigz#`oWX!$tWE~D%s(^0M9O#d zWuv%jpB5(;PFFdF?#VPrja7!rlVJK}7m|~?%+h#j;W^sOWpnkwnTTUE=VUTYbljXz zvh)8Wlk5<^W5Lj+=A0|mqvlg*I<@)4Q5ow8abl^q6I!x`e#>!(Q5RE}+zd2#2Tw3W z%9EW6W2d@_iJ?0;2XzvRZH6Q>Y>daea%XxxDm_Ed3dduTLM*E*o<@4s)HLK;{H`;W zeP_U3h%ng04&fh%ivK>*^2=u(#ioSvl2(Z995&SP{3j*6&OkzcoHx$NK53Jd#(_XL zLD(FSBlX5FKVd0n$4zt(yg#)80g_cwqk}*EgcY!cn+R0FOd(vy3ItzIF0=iFLkKRA ztLJmsqo#M8DDl_?w$bc05~Kf#*FHQ7BYpi4?R1fD+|@$3c`{F_p)UtpEz!r)5-?G@ zGUgaoRP+@!PSGGY8l^vvKYfq?F^X{pKXk4~-1q_BG;i1WW?fQv1_zW|U=PW7>YjF;L49TORIb2_(4{_whk9oRJ7h9sXa2hyjpacCX7f0P`&a@lV5SNt^Y37kP zQ#ZnoqVKoR=)j#AP>E;$e8U}3%y8|dw`VdEm8un^NE=i;`M3t4$j0(siKf5DkQWHl9??C+=^!q_bVdH!Te7vQ5eY8EGg%$2n{h z@J1^2u_CXLFf7;MY4X-&G`U4rDhr?CxzJyb?%}yq8HPe)+=&s(F(*=E zNy~*GL~S#(^kvTpnewp{yJahK6ny0?d$>QySKWH9Rlz8G@48%7UDCWu^bgVI>=7)WJw_Gx_0#fa0VdjisQNo+pjzpOYz_MklQs|Th4PX;PwNS|3 zI{vyt5a_sq5oN5-=`M^*&7IZ!&M61E>?0V^dUmW2gy8T%y#@`7*CmoLhX{Dn;BOryI_kI4Af~#!MSLIoB_EAD-OCcnCv_ z;=c`1U<;IjT8@*GY8N01hS&G6_E8%k`+}_;Iv4KWSr6Is+k1d0$EC! zYL~TO;vRAn?SPr!in;Wx??@MaOIHsZyGp`1pRtLS z7rt!oD8G>7NFN81s3l7k$Dy&Z^LYU(^K&44fK3b!_{q~kPQRC5JoK&}^_USW*?g?9 zTxNOE_+4oA%hL4RNXp3sGn=If;+TwwUVe1Q5||kMz{8H_>A755n%SmMUM2ZuQ=uGb zzOY;y$Ah8NFlLtBL9|-3$BhnRNHy3XblDxkz227GkYuH?+BnQ(!?fzRYJUy!s;N0$ z@a{nW@U4qNOd90Lb%V9SEFRXIHh2G(+Q9XZYOl8Crz@@(H`*%S=Aq@**Y2KxDAwu0 zN>8w@zQp{xY|dSK*18?-H$6H8+)k|AUUjLRzt3~QWIl3cMDcz4m*|V{ljRTJZb(%= z`c3^I__3We@PEi<06AYZ5pBFLV?U6cV!UKMR5kKyMa-VoVv~bk<_(-S8+L2M+vll(b zK$+3?<2vat>hB{SGkA^PN@4q_iw4NcRY8#8Zjjc0KSM~QgsL0hAmnWL%Msvl06ol{gX)-yVbj;}Pu<`E*hM^Qil#d93p3Tp0Me?8T zhC*5Gxz+0{43l8^yU%=+Z32J@hOUh?!Qma?>P;4sCMZI|w4E!_Y7_zyNIuY;_NUqg zJO*R2d}E^@L2xjmR%L(FN2~sXQ>QLpm*qMAy5z-O6%A0HQ-GY1>}@0d=%MCP_al|XRX;l@cK~N z9%;5`uK2on2~~5h=j>Oja@4HO!X2 zW!vwvC_SQF+rtitRl5e;rm*0iCFAf-RW86>cdf^=Mv-u&+7~EPs>E4 z5<5cfY$VVbly5Z4vJzA4HV3`e>hBL{xIm|GmAghEX$D*$?{%qew7~9_5X%OHB`m?~ z0&8x8pJq8%IuAV&JKFW*TIbtBhR^=PRsOerD;g_NtXM`^v^a`pkIJg zc8Xr4TT<19TM>bl~9_{{3>7We4i4T-8-RfqAdei7%YZZczM<+M(6^6T z`|3)}~?U4`2BlcyL01Ir>=Y_uWd+*8*es?Z21#4mP^nyL)S-#tR!pAPV0%1L$ z)JvU5wUo(R8Mg2VF%XjK@#4k@*~2{;Oq1#u4c{^Crj|XTiyN9&^LPM`?Rqc<8x|9L z1dB0djE)n>-n_$-njOm$#CZ5_jwDwEEgDtyK$jzt)}!(ymI-`_g^T;&LMap@Xgysl@AL?f~ zRR{F(hFCf!j$sI3AAkv_zd?g%2u6ZLiwS%l2?{&BdGmDcO(9$aRA5g&!46|`1pHR0 zmquSvRW(`C%D~`6t(^?xVciF^Dej@K@}J^+Nz@1SECpIe(ap%0rPrd^nB^M@U&{1# z4EgETw;xp$S6RJEGx=`c(O5S$+WXUe#^p_u_n7?v9h>3Q6Fqs|`Ae)-GdwqhC(iU^ zyMqgZIn_gQXROSu5{|W?{m5J=UXb-^qR}Vo957gBg1PTn-6|8;Jo^6kagShd#L)2B z7wrMi;b)#t9IY?i^p=iaO5KbD#b3eDm_7cjx@FeINgf+Jd*=0sRu@@$Y2r87+0$9V+HCXW7*s z4D>;k@C5sCd-I35A8q6hb>1rG4RcnMo(>aA9-0ajz5A@)PomyC$q%6?Vr7V>A227K zNKcx(FSkv-rib|^U~Q<#GS(MoCLAu1AbE0(BT-LnnJ?+2;d8;{3l8i;DL9{9?o>k_ zvd}5(`o!@xhqB#)M3-A%1T$}1$}S~&3}V2sdkecm@pqG-sgp^0YSe3iJP{?i5v(x# zd@OKb_-8f@A&^8K{2zG3|F|{$^S=UOR@}dA7z#OB7E2$g1`kKk z4*!0wxXkJyl?c!0&qeShwwfMs==tfR=lq)+Wyj6z@6OE5EfC1h&EdlUg){hY@P_Y0 z3+#E>neS)in{XyY(KE7TmjRJ6m&jXH-1S!cY=FO=-Kh0hS14~WJu^pqw=M4z`i{<5 z!z0H0?3g#~FGn3-Gtz;vL(|l}NcZYz%48Pg9NW_Jwll{B=Ec>Yf+(&Z)l6{~Qw?_z z&(Jg~Gl5U=PO%c3e9F-e^`|h76SL}!ZK0QKCFMytnqVlSth2_&fmhP8YE^MTo{sN( z?RXonBEarArM(<01vhcxG)~g2UG|HFWu1B)(pCZus;Vm+66WagsU1&@iiPosc|N)z zo%*!Q>b0_Yx?JLO8-e6{ZfomG{#<&Qo<~m9viDDvWCoT85?t|=FkV|k*WrSh?h!@5PJjERV`Dn$C-3k)pmR6vEzk+&Sk{8 z=G-ql_u-$x9go7rMQV3Qs|y29Zj);by}zs)D}OoZ#C>WTMf+uA`|i&Z>mu`QIZ9J! zettUi;B`yP-H4Wi-Ph;(d1B0b{D1x2V(pLt!F%4p=&RV`13JU2)I3l!qZ!VZo{R9i zj-LeaA7L#dlMQ_nO=IgbwF``m>iH*%SQR;k3k^==4uNv#X z?xZtZh_lAnr!HiKTsSG1<=_xnnBx6XxWnQ6cA5y;k4|AY#{}nKZ}cr!Z6QzPxPnN* zfQYiI(C}INl}i|+0ksTq6eCvg)vcHHfgeLaxkdAa zqyEFk^)TluD+YCEeM|0^e|*po0ZC*)K7$59I-p<%1_nT^2IBENJV*Wt#vgc-|6oX- zJJNK!X|4P9eNYeny^nd3L`S;%q zz?3KaeaZ)B`2$N09wxoCYmvP0J1`%5F{i8`*IpI}X7IZIsCn!|kD~QKKt@HFmjz9S zX5r-Jx8>(XA>gi9UQ-efm=EB`Vq6RbGn9BaS-e@2^7pm9Vmb^qy7FQnOIR&%lQau< zHcV-|B*+IFL)z8H1ApGpAP1 z$1`Ek9-v(}cC`fQXi>^^+`{9aBNn&5Z=ak48$Dbv`NR{>?N3{49{QUM=YFlB>BKY|c)8lnPXAb5*KY3U2RIj9D~vkSyVANbk69T6l+0K)Rb;nU1W_rF3**oRK4@$iuODIfLD|S+pQGBK<1N+SXA_sY|z6 z>^R=@+ls!;i%YBW_377~DzDA-it9iAMR%>L11JEf#=`!oTMM|yBtX^xGm6f^Tax=< zasK^;C=lmo(z{N$84v))9^)xd<;(jc&Oc}Yj-&&^niQGt$SA0oo45vk|>a#FS8c5kB7!RrQ72_t>KR1PFpB5~38~O`{;Atdgu)RYpAu_zkVVj^J3|gK~Vb5QsaVDy3TR3zb(fy#KUuC zIS*D~?QkPsWxU8IsK^ly+!pt$778oH9C?fDhK=wQMjfT)xefK-#IsvpMyyob8w_8) z)iY~YR`FQwj>!Il^+DaO@vr$Mqm_n~t6hV`4>HL$98--qYdlxHsb#zC;F0=O;YW*$ zVh>ZsZ{7Kj1d}Ec8f(_oaS)3xap^=PP1S=o+KUdnl#j=q3n6tk<}PVjly=?2Q*9yCNX9DizZXA<-p9NPANq&r>G?2u|gMZMo0 z;?M0UgIAK)lb)+#UQ@TB^pu9FyL(x4Q>5bm4Zl|uWC1h;q)LDLz4p_kNaQe(@WEip z0UeK*w~?QJ->eL5(SvkpyVM^EpS{2QUI2JcQ`79v*XaI7v#o8Pi_6^KTwj1)dH?JA zAW{0;uMD90fT+*@Qhf|G-|qhapzZ%nzgNzHpt$wu?aI-L?b{@uf2YliROrwO`lu?f zUkLB}@KsG8L#Qr)y&X&Vt1AqibYHQQTgpc}SgG z)hvvI2EY()KCg2iunFR?-KP5zg``z3n?0OHG1GbAEJrfw$~#||tOKTM)~wQXGFOM6A90GM!f+-SSm{Ez;}N=gY0ps9Hf~HnU2& zvi?GUe#*&eM=9s!(Pvd9TDjZL)~27NvP=oJ`e23hOwQ$G1qW@cj;SwQoGS2J6PbGU z3dI_LgwC(GA_Xx@==dgK6qa%}z@a3bi+abHPpOOOsJ&&x$Tt zoYBV3W|`s4i{ky@tV0pUU@IemP7yZt=2%MjLY}ujwInsR{(@cV9X-0?LQluCq2yG^ z%5u@6ABNPD9GPu=S!qZwuKYnIos(v!wt|yp*|@K`Dnq01O66TJT*9)0k<*~MYc|-q z#znGk%>al0Qeh^bQGV^8US@%98Vs2NP3%X>0SS=t??@3KNE3ws@Th=If1hHPDH;d7 z4-Z^nj0s5q^3DTKm!4HyTb}CWdOjINQ*wY52}LA9z||S3CnzMK?1AZNk$q1Aq{vg6 zmkG*iUcAm25C_%8xafL(u!xcfBwp&p(p4_lc&yIL{;dXjN2eT z4TWLwv9{!q^H+BsGgNt3&mH#$5AcHszu`Q|t)RT1-jtF}e$MIYMbYs07-sM1wM%L| zlKy3We0lSD8o0Aqw5~a*4k{RY>GECsw#5i>Fx?-4Lc(l&zpt@WJT|{{HTz16*ydN__#j9(N5)4{4i7ne^l3dqQ~`~`G4CTr17htrW}XuK z(vCvwKQD>V^4(d-HhFkKA75qjYip6Kqm^+7Z2H($_{{MXvqMoHpvk$hz7rmgZ*J}G zsIe1{+;#c2m#dm$Y64Ag_+ zPH{m%#Z~Hj0!V6eDp7Zl%_jJyt>HqFly9l9xG_f5_Aa6ayO{P_GQ>K?xmOLw~9?tsobE_!LFIgX?;0a%u1lH|Re(t2C-lA2MuRak%$IKymi-v}57oTFvHkT9Y z={RY2o)IT@%U!RTT3WNvBvxKlh%76u8ploM*A16(l-^l!KG%_u$FMU zksrK+!rw{}+*qB*0ZIvCbN0eRNW;yAUYmD%0aK?oEU7kbeBjAuO{OXqH_}ZAMBsxM z0zLhK1c?n5kT!4p9Pmn#Nl2bxxG!ibEpfddA9K!vv0}|lXeS)TN*UhjNrOIXF>uKp zlitKOs*cx3iwp0oDYJuFX2#rYLc|Z#Pb2r(%#;Mz;n9jtUIylb^*3{KeK|)=X%OFb zj>zMge$7IL!9VJ!6!UM|g1|e%CFF}=)O0~!Jb3&}5VM|rE{TQ<4T3_M-DXG<$K|Kb zue*%SgzhXenE51tr#hb*_x8%5y(AAuWmYBk6~`^70H3LJZ2e=5>WVxsHhG}&v&NqGO`y`fVtJn z3<-QGTBZ%ds!)rHaa*>ayES{`V%iQo<|`E!ZPM)u8U-#8OfMLXifg-7HdCuqB#GG- zJ&Z|ZAac>D^HsQP)nd>a)(b1(mXP!ZwHzF)>kUdL9f?)*@GV?jcM&SFX}x*%P4nxQ zA|G13y6$|?{Ib&Gs=4{;+mS0A!<_FaXPD6BCx~~61n4YoRQd^>^uUA8!>^K$)Uz*H z6F}|v-`%`iD&|%lCipH0Q~@d0&`IYHq{>{b$a4PBFUwLT-7WvLVC~W1HvOA!c%;Z} z4Lbb5r`O^v(;TlfY75*dWG=R0APk*cbwgt9^v6f=4)&kh%^xOy8L>$z_}nB=Y=SA( zwOXrJGjNLjG$9mcBiyPbuVEL|#?{GS&X-KH*Tkoo=5C#uVgd)9klIzD zAHBT2APIZvvjp;EY^L&uXf|K+%ek)|Q&vpV0ecY1{7)Ag;Oq1P=J6fK>R=xKMt}R` zxd_nT478a3r1$1`2ZWsc&v1{lRfL4l|0nvJV<&8%{uYr$9C|2(lE7BcJVSyZj3xU( zAtN{hor~=txR787%8HGud4LfZJjh`%ZJEzl;mAT}s4(B0dT4p5^TC}FfD922l{MXL z6b%5=L3mZQ2ul!X?%_CWY(uTq6MBfW+v$&r>c>Nsifz^vmX=0o;odgB-v}Sl0UWTL zbfyq-X&_(y-d#Tj@IboSmG>{(PJN+0)Ec?>gio;Z%gSja78rF9E|gK3w64R#Ng)+nCTcadvsj>G9gy%eHox;1pbh z`{UAyES^QRrEHgPO(XGstay7nXq}yHQ0UouN=PKfc!?ILKq@Q(8E&VETC02Z zQj5(P28iI)cq0}_vPyGKnV#t0^U~rfZ5zkjk3&X7kcj(b<+?T5_~nOJKSq>2>^v(h zp861XeJ!v@;oaMs*OyuntA~s-bir;%Gs^2PTbz<;R2N-Z51p5}K)5qjbp5Sw-rd!W zdV2h{So3FrEqln^qEn*v(%{mEtE)T%A1LRA2MDbg0pmpLufLYuuEKavf4o9>Eb7BE zMMY=6Zl!C0Vo2bxs(L20nrKfEEuv3^&?`^W^qpa$Z1l)}u$Fo9VzK{CY=_)httQXc z)3-J0@Wjur<%Qd1-^iVGk$rodg$%01=(r@jFnCq*NW=Kt&qwMOeW&U*JT?8d)%DBU zJk_;PKkL8q`sTEEyu~FPja1jfb9Woqo-B{c)Z4*Y>Ull1JPj9Mdthc{qLZzvdRsbF zt|kFOr5^%3*h$@Z zIAamOqP2df@nb1{AeGfqV@wAw8~^Isl<{&6see>Ha@)NLOm)iF2^D?emAx`za=Kxd zzGeGO&x-Tv-S{2ZN0XE^Z-bUpPv9!ri7Sz2Z~Dy7LZ@v1Yho7;V?bOlH}!8M)#Nsv zi|L(sv@^#}M;I_&KYfeQ)z;PPp0VrAw_gIy%v?|JZFoJtFlXkrtY|((d=y?t^n1cz zk^vjsTAFs^k*EUQ!Cp4F?z=Ekyu=@DCyjp*`p6}gavPxjjGvl*RGjC?C1h?MaU`Nh zpZMx+s!{OR>k=y)oF{cQCbOC<7#Hnh-W{jPlRV|mAg4BVN`MYuXm#nO{QIP67cEdC z`z;>>7*aPaKQ;QeTW+ZRw}pTxjr#E96muidVl(S{>|&N@X?U)x-}qKh@>TdZy;x@s zUp-&n`z6%t*1vof^X;xxEygC2wsi8+ELoP5vwXKii*ikmuVfddrxOeM3%(7N-f#9z zf|bXMiR*CTDJwD!zK_af+I~HAs=5nSUo+|ALFw1@<~?(+wPP1vuY0S_`A@+R0I0 zS`HUedKv2%7lmXz_R+!T=&iUI55d@ZZr|3XGrw)kV$X6*zz;wN`{3_7aPSBvDd7Y- zu+AJ@bbMJQrKLigENK~KYAKdbdW=mFRzI_+p{X9VwKxFz2GroQ^v7(3Psk}9}kH{3H75uXMk&W%M!6Fj|YjDvmJY0{l zVEKBFbnqEJBdq38ivR)$#Bfj+kl)QL6no*=$E%iNz9JmAi2~#T05*G$bc@&yjY$23 zzv_*V5`Mhr1`EU;4WNHYn>inZ5uLfRtia6qa!fhBV;SSC7w+%&C_w0Cg?32<_i9`x zFN4ry(xegqFwEveW3RQ;S8CTHT|4Uf^h;=wEcZ9o)eX3>(sHymOZ0nZgq_o2JCUui zb_C9JMAT_&L9x;@CgXguQh-L_R7{?ZjzILz?TbTIeI}pzPS&qW;gnyi__usbo?w*z zynQ)yaxMN@g1SZ9_eY&OPL? znV9-CVrqCZ$wy)FRpXhF({q zX;Bk=?bSWFcd7C(HQ_FGQJ2*vErw0|^y|lmpSd(lkuv`AZ3lRYT0mMs zbHHByduLSmpBU{!G{A8uB{c<-k(q(R%cdYvsQ3enc6mh!jftf?;O?fUg%>n6MQE6y zQZwoxbSVX}2M4&=;H3TIPQ5mh@e2|Hg-oxbJuWy3;9`59)Ha}K79wFNxR@zJJrc3@ zb>}N=VvrWuy(@5)q!Kv_A%YK!`PF?OHfW>t`KNK_CY_O3CV6Hz(Ch_T?D+`gB!VIc zwihod3MLEF_v5}^rB$Oup5{vI4dnEdB zs-wvTN-hZuD~j+J9kfBRv-R9CX$d0+IGFEsN7$UA;!Nsc@PP>N6U&pzo_itvoD7a; zWh8ExW|V6H2~L~GW7;o2*oR^)(q+}($19_7I#W@Oiz(8_l*>(D7~vra@Q!-iq=d%m zyGD^!o7m}XTj{zHPX=_F$L5?7n=^+rXVd36=-EBvpREdA5XQ*z`j`GQo1^bqB42$~ z0Daz^dy}B^lCREwYqMKapU>ykkMI49Bj=)?oRj(aVONAK1{yyx9Za4Ziy z=_9$=GZRQ#6_y{v>FYgbtb8Mtum{39rV0hqyv5||Ub#UXh|{?SbS`&3FIfm+ynJFl z1#!!Vm}32ntti2P(H@uKLf2>;b8|ZsWbHN_{ytN6WsDbWGPrE#=V}o?O8&|M*jSac z!>RsAS&(H;Oj&3aDEiwqQ9oljwdJC@HeuUja#1lp-zr&*C*^c}S(&$Q^a{0nVyK5u z1UMeW5=bj6#sxJzD^4D?=IJX{JuH-~4|@i?R;pjXi!G~~R8})hb@ZIpZw^e;y{+#N zC4=gw^>9*63v@*l#kED(4Z(}Kt5PPL^-@(45ztk->RQP{tIl2YTU zN{k*3y+*Xe{^p3?Wi1N{RN_M*u%V59Qu?J-=Z0Bn1HRsaY&jYMcM`$lZu;K~K%gAL zooU6HMQMV8@Q{@qtqUDICR^1GB_ttv!>_QYsyZ0R+CD(SYOdOa<Dad;zEuJsE27!$lVmY-kT|^BPP-{5qe8QMS<`zT{1@6^6^|Br^a**Nlg25y@i156z?L&5u!> zMr+Ly+cxr`cg{9p-SLwZeu235^Z1@QwbMv1}uVIomFm{ zY}%f1ETaP@PhNbLMTcLHVy|;h%o~B<^=dxe00ozPbH98iYPfUHarIX`$Jez<$_vW& z3x&pyI4C5x-mA4K9#-alD#x_5n$-8K)JcRwAdI{pFO6gbvHR^TCxxFseT6%KxWGJi zh1cwC%a6q*hSVpn6K$lS)y*X?|L@4g>ktNNcV<8r3k3uPl|7xl373tfkPbsGQtmJn zC491QyEN1=71}IG<_ZxS#HD-Ti$>GK>AIE#T&gVCrlack-SYh9)8X&D1h?%uz^8ig zLiX(8-g9we7sUH`4aX32JVpg+gy+t-TCh{*q0A*mUEUQ=4YD|iOY`&a!KHhKI|yY2 zrm+iU`m>-3QELNDSb%E2oSPjeOe>T~9QObPxw3xK1All>O4au)3w@dIK*v{_oH+b! ziG0oW+i;P)F9&OhPsF!Ukl}`vn33PO{BoIH+$DU4{_}4l56s8DiB+1vaDV%d0vBJa z>ST3V12$9nT1~&)D&S*R5eGg=foXg+YFoZuKjHaK`+wmmqXT&en%Un>K&8@ubCi)v zZKO~F0L9*(o?M;ZMSl(L!%Uvedk#h+l>bEXSN0c$&_M6w4v{lUZV5vo4ok|Q2MCl4 zE=<a?_lkV@(^k1T;Ywka zPWf=Z&+)~9D%#IB1He&bq)|Tw#4q5kGs4D|xXIPh*gy8jb;)!p?c)NHFXV}wX4}jf zC?d_NL1WTm>jS!ybC0je|D<7ps|klv2Tz31%qGa+5VWTrr7U^Cdmumi(E-=a%qt!Q>^ z2;lDz@PbxQ`$R(2u|>QA_!l>E)?Wdhrhg9z!3y40!iDQaG7!TGfc}&r%eY-Y!`DGs z*AbHRJ=xztI9zrMQmkueiXfI9`itq}0naHh@2W+M&r8z9+WNRJmJTF(b(JpVz&@%9 z#}ZjNrofl)J5Y0=Z#{*wBO%Sid`A^JJotROLw4c4PospKj9X=P`Eaz@N+ycNjgmi} zm2Q^>s^42#$^12mSgvp`YF>HJm~2Q;N$(mF&xlqKU9Gal5HRJr0;|G#WV+Rglms5F zVfmb8MUE^^ocQ)G8Sk0Mh z2S0IILl{PTGbukcVQvkG)sh>Hv?sU1?uLrIaNKv?=ddR?`aiv39Yo!1J$-KH(@Vv3@&pi9j`5d}iz1T~gREj? z&}*$ek>f+x0`)S*!w9At9*AIyhH1S)<1>o2F47MkMZ=#)|mX{&0hb-q!yUl>q~5Jew(2&DaT zdxDaYv`0*V_Cq*|<_%C75Jv;0s~SL_n2XYN0Rdl^^y4-4u(jQ9WeZF6aKv_&KowuY zF&GMj|JU*LpeKp>J8XwdYg(2DCVg;xRf~i59|x!+`M_%^j!AlRg#xh>7U^j;KU#Dp z2f^qpOPCfq&m)7=;<2UH+S_yTB@m!<=Ml@1d;e_WL(gL^NR@ZSa1 zvrUEW@S{;A^*H%xOu#;e9jjMhc~42w?tRqP;6}3u`7*X#5MJ}Gm0xt>)>Q1WB;oyD zoNB~U9?0Kjbl#h59KVqGE)72$ZE#COHxcQXwjd`Mp*ESKkv?V|=1^vs=?Er@=4ZSV zbs%Kio+{#qHC{C2g0usU9cO#flT;TPgd33@nw?Au_Lrl}h@@Y`#uc=IeT#Eb^M+G1 zl{^(n^OBW>#GFAK?2Dzv$5{(XE3y~!AcYFd;*K;l=E5-zw%hm;%obg`)+0F~341y` zdbv8Bg%4%?d)>(B5-W!e){Q1jN!etG_(tOm{sBgyb^6dY zI2ifi@el2C*C&APISeFPovT!7cq=wL(85|ro}w>GeC%Y_cm9ZehPA8s*u~|w_OY8U zlazYCB&(0gFGeh1*g0QM#XqJPlQ)B{jAfsQ6l&aS__r+{S!=%ogt?|+$P zR8;KM)s3%Q+5Jt#1z5O$A^!gI%iO!S1)N)cr{53wNPj1=|LZRLU#}+rzy1X^QkA%(7y+VIQ5CZ{}2*=&UFxP^v= zN4VTYz?r#u?L;Fr=mqW?Ffnq(CjpjnM^U{DZhnzGzuOsE_GMMo5jb8BFK(g48aG@; zCJ)2mmZzO+BK)jRLY_soal&XIV363*zqOFO!*MgR@|H$U^Pz<&!ZA?j+(8S;v?zZ) zhhX#cym;=k$r)xeLAjk$VNrXCk;_jy_XCF#}AT1&2wGSegD#3$Q5qV`-S1jW!_7@&H#X$8B;$v zRtFUN91Y{ZYXT0ywJ>Wn@nn>$wR5Mb7T^%Y3ZVpJaw9@*@IuGC`R*c+xKt;tK7TQ zsWTT?d*_~Ccg;3Eb9?#iyB4!-le!I6lXklJG&=f?!Eh#i^w#wce&e49wA0M z?a$Dmt!O#Uz&7LRw{ABR{5YEL7gG>dO)?2KSw&4sJB%a5q(m2N1Uu{(l45MWwkI1a zz{9+iLUs+}J|;O7Sq(~3U!*5HkPFk@;GP|!XNHm3B*oqmJM%?C(~F$YlWB_qK`TiR zS07w&G7|NLy)fT5u8Nqksg<5`n`B$CY|P!iyj1M$Kvv8z@U;;uE4}qdEbl?QjVUp( z%V;>Sje-=&)T^Z-HmXMhR8nb&d$YtF zh}XdkG+fwNQsw(6MCc)9bIKApk91hv)DP&0f-x}DQ+peMDl&Q|ElZ63RPAxfHFuvt^LRa^vFfsjp%!O^*x^Z7{VOXzCKr`j`tb3{>2QEH zOUpYDN)zkUz>s-r>jU&KVQ;&&t<`;#MkmD$1pjICF)KP_WaF^~6~pJooPN~m@!lQ~ zw48=i#fk7aY=zUn@6iID)WC5jbAmI95O$p;bcQ%%grq+)7RVW*$_=J9PRR-s03K9U zR~U$S5z?kA=5``<*tzH=1|aFlA{RCnLt?37_dE-6C@`a;Z0AN_loK6+91(USC+LzE z46HxF3>K0vA$?518n;Ak-7=c6i>dbal`TQGkkrKtN2TG#dv3#`SK}G_Pv&I#oee6^ zUfdF;Dyh*82xbN19JS)XTq`+wv5fP=1d*q6w0CO zz*6k$IdvYmD(AY}pw*_Y zdZp`?gIg^&K&BFXqZRV~9WikYHzCvxKe4tMSHfZbq4V5e^N|iL=WfL_jF(@27k?yI zels7hQ%&6A4$jS9c}xYRy}SKKelw`t_H&G6O6%v4w=X5uUWsC2mj{$X!w68R)lAu_ zJh`^c!MmZp#5xClfR9#m}oAq)Hiy?a>WM$w#jCt|j%ofB-2wakKc$*D(*B zuX0m9Q0cGh<4arXJi`dOUsm=Zymu{TrQt8VBUn|WcIOlIZ|p9l+Ewl@W_oSxE|EhS zegA1-64=A?kR;$1bFhc`foRtOe+Gzt?6*b#sdL!=mO6xl-iwRJ{lzIffb8y9xC4$= zK$f(!D*m1H0uryDo_oH&)4$oee|c5&@;dhch5yQc{8OXqe{AXhvWKZhFO=zBNTUsi zf3Ey^+O0vnhEza3*uybG6(dY(QQbrL^OUrA_wMQHc^yVWP`5qUxr9Vq_gfMj0M4!{ z(`}P$3715Kc-e!~*=@3bmPAbvEEvYb#?BjE=5Wm<%>#o(fQWx@1EYxWvN0a!5`I*i z!vUr5J7@!YE-JuA`})n>eR)%5hCN;A?LAHg+_TlMJB}h;jEwA?vB}ZWXi^3Yg?}u% z|8ZZ9`GNCun_n~#Img2xbi1cI|Dv_9OzihqOA7?)$tR}Wo*J9;m<_2gYM4^ti;U7v z?%3x{#jo~qVl_J@X3zi`!9m-PxSh*CSge&nop&Qyye&5fM|ijelyp>>KNPcRmaZ5p z7S6u<)3;u7;EqB>vm~T=rN>B)>5WLia)pl) z($>#YPhEv)%GWNP5Ry_Rw651W44A1poqFNRFoBBEZ^-6ec=~d**M9YGjqHboNlHR& zuXH+~}PsU-)TBY1Ivp!J=-)6Y#Wl7xm+;!RJ&WRft(Cv@yYCGa5x&7T% z`=Xl;O&Q$S*ri<9ITdqH?)K>H*2uWY$Rm+y=lWo;_W=*G(2DRikM3#WhMUOypa-Qu zL;&lXys5 z06(K(K@1~EbSCb+?^SDQ4V7)H$g7_&SjS!)zNQqfYpXV*eae(tm~_|}oqNIR)1yL? zeUTyCIg4Iu(RJSRruj@4#qOe1@9g8onJU}M!`gPeq9ulGqsxPNQF1Hx=S5HNP=O+D zM^Qds)3W8FOa@s@QCV4GQ02->c~U*_I0k(4T&0^q5q2+43C zZdNMk_V0?(xGGiSwunG5ckvWn+RNPTR&YpYm>UdbU`em<5Ps!0O+4Uxy~RRHZ%K=E zOxyRpx**_mmgwUOML?Bam8TUHQ3F)zg}|Wn3_x zh4hbs*!bke--Gxk$6hbQ@3%ffM{Z1miasoU*7gL`L17=J56fWszSM-ffh@Zo1Eu0( z!0;GAuH|qz<}X=~!r0}7fKu_Bg3WhO3YdJ=n)w2NW+Q|~z5;YYclwgP5vHQc8Ep#e z1Kl5suI#0tm}RTG|y4a&JwUzbEmG!`3Ltc;YwQoB$s^|ND@PEYkD$R0|QRY++x zW#`1^+uNMX7rlQx0(WF&#F&ECHWZgjn0mJTxm&0Zy0ACfFVk)iJG!2`YobB7eYcX3 z2y=529>2clDIZ!~(|!hg{K1dog-(pIk*)B{v@Zi<9&DT4poinQ0?;amR1LbjRx=i# zn!3j(LfGK3Gs=7`Ll*uV$tC(Ema-C7$a=17UgXWfV`HJRk4H@-Pu{YbyL0B&5PyuK zb`tRxfmMyg`-^a?wN5$v^nAj_LLKu6U8yF)`-Td^1gN3MNTE*Lr2Ta2Wea}6WA+NL zY=}<%E(W}GQ?&Ss*?q)7mWqkZBFXO;^H_Q>jbmcEC5K}I#0^(QRgbC>THYU?<-%!Z zEs>&3Ai+{hhLA;lbCVrcN=qCQ2&tv@!0=Rci2=hi?6~@%ak1>+BX;%Q4zb@a|I>S` zAV@+S68<~d0W3!}dIBg92246!Txb7EKLhxApe77>p8i=7wx_1{8F-rloALKf1h8y> z>jm38;LY#--&=+Mu^IpRD=_8%mVO>6`S^6k9tZ2pf34;AWLnxAEKL+oQhy}qvR@?p zgMHRm%-9u5s??RFaaZ!-Vz)>882fWzp``s4dBMZWgn@;fE5Y>|m;GU6CNSm7N#3Su z8AbbrnX14Z1Vav|18#uUOb!-WG#hUlaR0hmi>77a$QKxR%|p-p8hEO{=6gH#ufojH zC+$yT=G+IE>G_rp3Nxqp+4^2=Oh4O!&~eEhQHCSvhM$eaGNe5Xb)y&H!nqmIpwY)1 zgKhuxmac_8Wc!li-*=^vTMHwBRRAOCy=if0`^e+)}Oe1`-^B8 zcf!PuFCM106>530UvNB9cFlm>RN;Z|BPUTtteqQ=`=!Im?8p6)j$SvGrrwaEvnwLK0OU!>5VJh>2g zifdScvDvbL!MCASbH~|yVq*7}Jmc9P6KITcgWQ#`9RVMnkJWOUwflJNF1>j_bw6hv z20NKFVy4e)ZfPbDt${^(B5($Jv^XTyT=#}()qDTLo)>b0*u{dMaeKVKO-+I$Z{h{6 z@Do7bu&GS%AxH4pB>`RDt`mY+xqn#CMoYlFX3m`!+fodYgR8x{M;~H8uSHdJ<5ScE z+`x&tFOSW`uGy9@BpWL|H;y+60b-OEzq$p|?2Ael&tT-67Bk$sPHG~AdmWatJQuNo z*?!xiMK{j@F=?_E$5)};Fr31bj8L%^YW}1w5}0xoG2_BiJuz;-G|w{o`vJaUjyaeh z1z^gH%2vuM{&UJ5|M5fvdrt^L`kmVV6qNtYW-b9#(O-x};DG&6ylp6c!ak&BLvpiZ> z>!^cLV+JOyIpHmZRAdhHWO6>bJ_MqJlWq2UGNVz9#*^lUUQPlpPTu}ITLcp192gHr zcLc;^A_dj6TX!G`WFi}CsP1V#hxZhYE_0HF?+Y!YXQYxJbKj|Oz)N(eOjfC z2%@VRv5Zkx5XynPVlV_ax}|`EqM>3Ko1iv`Ur3^17%)qsSS&9+uKJ8?ggMFMm2br381~-tC z(V}=s2u!%OTU2;j;8KZe=5|Tm{ooLzIY>gXV_78WThnrxRN0>XY)(}kzBILLm`)&v z-rlIR63>CAR6K;B1R$k@juIhZ&EHmQ*z;COY6escK+v{DqX#4yrte)nR)7ywNhXQs z`sUnq+91(N0e@MLLtN!6JI9rtPcoLk+Tl0q1Y4c8p!u59@ zo0IBpKIo?+Ql)hIYgx&RY!%f$Fg%6Qx#90@+JZdiRO5B)W%-9*PFljJd$J?WpI^u? z{m6jqtgL;0MWB_u?aD7M{pGc)$OBm)m{9YVH(D1T+-||DyKD^^ybC2jx$V}sM$E5ex0~I;_`LUd+EW~DZj6D>tEj!X{F@7{&BwC(7yw=2>TppVh~-Tcn?8`FRgs2y z+(EclsxCD?0F-(1N9;6Sm;9{wXa>*~evKcTcu{}Dm~a4lYZt(hWkCHf?x#Tgtmph_ z4IMq%1sE%nV7GL1`(eHfNHYk6g1a@inb6SoGw!_6l|F=)gR5t2uoD^3Y+_DR{Z0Gf z;`5P}QH>vnb%Li-VyF42)RFygF}FM*s?%Y@)|?v~TqEkCTstW3&mZP`Xj!ooayyuY zPf%S`^Ni0Xl*ayH^3mMpukUFv;(G+b_06xJLsG=0u3+2lwA6EAd(M7u^KUNfe)IU1 z*#loVa&6>2(KJ|u%fFhbgzp*(dz=7N`e5JQYK%)E2VuV{6CoWeeAh$xA`&T=z^2&Q za14t%!3=RfWHyqCC3Y0d(*d80W^fs$1j@})t&}+7lsTt!tPTSZaY-N`tZ|lD0J(%2 z6H0(i4_n&nX#0>84OtC^qm4b6=O7ZmFYV|nrn_Tl=LAHF>DkrGf?$;kqUo9Pz%XSQ z%p$G84Ih!|IVW&();U3WjYRk30_pZ)GzbbPGxJPDUKAL?QCujZ=Rl0i3{l0U-VYJu z&vKn|a12Rx?0r{;z5kI;tb%FqWNBHQN~%G4;3CINNp$6MIf+Xz zsbY_RY_C3i0s|siReP+?o9(Moz2Y78C)TR$#I?U|b~1As1IZVCK(Bx$+`$8S#o7jF zIl}qV^KsGGqrDOhKiHezHA{T%kC!ZydLdt{A=7^Ht3(Ziesk^f0E?L)=(Vc5F)>!{ z#O0$9hPBl%Z-2)79UC&3%OHT1?ADLBncS1y9<@$!*&eeme(=XwnbH1J(woM+7=A50_8yOedAa~43sIhR=*w=}qhAZ2(}edE6Z(}NU{C;PN7BN-Ee zu$isC9uRm0&Va$3wDq9}MZd?VKn8hjQvGRN&54wiFPjdB%_~9e-*4bN zSO_`(rC@tLeU$YuuOqEo*fn5BX_*Bu>NV<;*3!Dk!Cc$2*^rk&>?ur~fiL$?aa@Uj z))+TA*Fn6?Af9-)O*Jh_UP;yr1Px1_i$OAx3D7e|i1|2LVLTx$iGSHz5oO&uAALoS zeIZ^&Z&?UTZ$4I#e1&dVILTZ6uqgj--I<|> z?x7iS=#Un5KtM`LkPxL25EM{49J;%^ySuwXBvewmMMW?WgYyjdcl*9)@9Wz8xR0Os z>NRUUzqRglhmW;$tEqDg3%5-nO4;2ezzJ$!oL%O;u2@=HBi4*8Eqpb)uTdpi$P-kz zefq!;cNO}knot;Lzh)SscL1&z3(Equ7HP|MFAc&N8**&Et<8@b*!e?=3` z*7yV8H9-#c-n5hkJ9~$Pp=GJ(2r6O&^>y8-7Wx$j11xc8Umc& z(ELo2f79N^0HF*CcsR*81d#M}Amc0pz#wpA0RXSGtUMqd131uU0D%k%378daXy>$` zcx;?nb%Y8werxymvx(=CSonRlkOmBVtjWct*Utdr7$F2_ZebY!@QU#J!BFhNH^6q{ zk6B#@NOZeFXCMqHg`RAP9|^|U{GGW_r8orGhEGwkhGhVch%vr;xY|q#6K7e*p>~V~ z6oq(8DmaPiLEWajHL7jRypDQYBr&lh`KaJ#dMw!yy;M~<&@coa!_4hvk+~W#*^#9$ z@^wIPM!DDf5lBTW+)9Hj<;2AoAn}1g-mzCHvo0oQFQIlS)N_!0>n&*cSd*?#s_`d) ztDO82f@Ot|>uu01R0@Vrs2Y|})>tS$#h_TFbBjtjF1 zhLzZg4n9>N(wsPw(!{78Pa|88`g2333%#@6EQH9CljZLE*Zb=sb~Tu}0lc;HxsP}T zhbh5no7A}x<~8w1V33ptNm8a#m`8zaaX0E?GzgW^qy^aV-*m`(ukLO@*QKgj)u-|kHScz=#kpe+yqv$hMY0yv-lPOS9woB}TB z|9Ci|H4B-U$LAqKzf33o-fjW_CjeL?>0iLdVsiO{hXm1)x6@)=I~FI3Lv56vqmlc_ zN)7gk*$)Z+P1Kmhsg7Uo@|iQ47!d>E&LLpC@QBDL6+CJ-N3thW2HKXg02kk zE6FIxv8XxHasgPPMu4w?DA}U6rM1n@hk@z|1A7Hv$~JTZ(bdDwlk;?P%A1>%l6!h? zdU(-}hpF3iB65E7>C(=?D3pqcXY2hIFFhg4_U@M*J~#meKI0*1Y>h6MUmgdC=xV;k z^~mf#Pj+F6VL@L#3R~h!nJVxa45-MwNT^()x=bM1eHJ+huwDL`89U0$ic~NSN+9s~ z$iPAHde&Jg%nABTw08_Q8y>{%G%zKDp!NE+c%Y|9|E&YVVql(c zsL9>vyJLm^)D+e)YcqJ{SLBNI_x1yNFTtNxdth9WF_G!j1Q?dAGVq@J1_RMyf)gle z>&-FQaxH~$nj_q}1Rv+f?{1G@Oy$e$$XCp9&&`yRxBYw|*|_?g!D_ZX!`0CW)sFQo zkiqbMXj6aK^Se`65AC+bE+OpsX-^HSh=_EXCO-GgZ!QhxYD9l?JE`G;o&~yOme203 zE~+~*7yvXKJlJd-0St2Dct`-rXT&rP zku+>JMvv`0Ua+DJSU0PuYa3rJx(%Qk2ojZjfsy z{dNet@$aR8})?e_|!6E#?i zvIEh`{Wj2gCfPtIgMffbfcyd+-~bgM6Vvy9gn%muLH!Vrua!R z3y?z_;e4EO!RHp!Zz54NgELD^M^|{#wWbaOa-*tiF|r2K)`Zs722N~To?$>I8^c%_ z=xoRhZo5RG!yvA6plon4NSOhNVTrj89W^0gU(Ngw^B24dXBv4LC|2czFh2PC!hd>*2gzBCaR~*v1t%X+{K`+BgF|Eat6+Kr$dOo zgZIaf*tqCb86OXh&s^FZ)j91Xts>f>ThDR^961c_4%q`12BOB*Y*CcGD#FnSyMhzs zu3v8Ckk)8E<$5pJ6TiYi(AcDZ{4A?Pj&Uyem~ApI<7z&hCI!uOQL0w>QgjuUV6h&9 zh4kt)cXzq*7eofK_swjz)j+T<^5uhtCR4?^g9VDp*8;o(@eS@xkK)^P!cG~MN*9$)3D$Q`ND8Yt-T4RxJf;2n89*GhelU+#yapnNh?&En*3BusShShM#b3 zgfkV`_h8OU1#PHvN}a4l3D-!l#UPwqSz`%bO5|#)=E^BWeU-=4f(o@-ZOLJW88<px3CYTPjKgPw;qOmU>-T_PFk1}rdKd@aC=#X=VNFOxuU?tf@~N+%1`~G& z!(#2t>KDs1V&iUy{`YG$b?j;l?Q$RYH;UNpfk4V*q67(&52r=n&#VcvH6bquseCa( z9J`cWQ=}T%j!=bNZOA3ULt_mx%Vr8MFhcNkK(aN0#VCUiwHUx!=sFE5@jA&46}+mA z^!nlhkXHyCthz(6)^}NDF%grf0I{D|n@D`CdSuKEMy_m#O72{KT!|#W(Y!hVV~83t zQQ86m7aU|;&(y)fve%|GXfFaMBj6_@%==~wO0z| zpEc$vu7*f#ITx7@DZbWqF`wa*xH;N{~8wrR<&*A z@F;nU^$n4$=jmX=^}(@4V;I=x+<@s|sU{`{#YgEBRPjq71mYome-Bh0OLG9g1wRA5 zhT|%%ms^lJjR!i~e?8XpXqk)*iAt7ft}uyar>T~X&fZn+^1Lo>kD{*K8YZ&$OmS#_ zEY}={!|duQS*7(LT)Ip_(HLclg$MQI?Pztr6OMMf*JyQF#v?YLLzpZyerP~vNOaFN z9j_1Nh4DordHlfbSzi(-uJFdv&ZyC!>1Ag)e>pZHwPMdP$u;_TSVkpC0&4W={BW#( zH#^%0JWukeUc)63N|f1mg6Cp^=SMGB*X5JvK}% zf=Lua+~!Mu92R}IVF1;=kb*=U`;fe(8Su`0WO19JlY#?M^P{3-bWL}Vd6@e(u zA#&Z#c1&!ALn3asWRxZi&dTo-pt>ZJv=zve>3u$ToYsZ6&AV`oyyjiU8%Fid8pjyGkdL%g z?NbfKdu1oefUD9X*+davT}eH_Cqmp+Hv|Fa(XH2v2-A_n69 z4Aua(Tx@f~Adm&H&;gQjz(VkXkacb(mF9O~`qmv$XWn zYu6fnlcY5@n>00t&l%DeE8Yq)BwkF24i1BVUZmsV8ZIWp3yRhs6C#ixyMi_peEr`Y z5&=zL+P`dbh>xrl7n1Wolg{1IRFeBio@!ZjBG@>9!ms-bbyJw1hm8#eBMS}$Wa>s zqC>-?U1PE$EW}tiMOK+|VaD=e&tm|(s9(+*{ z=3*d&a|wUk=jyvLi5o!)XL}+z^#LsGPpDjeG@miSRafxd+4<8 zqTuq&K0Y#qyE`n8*5kt(Al?MAfp~aqKgkLVQ{?={<0Ps3Pxb56rpRlQMZL(J_8$dK zwervD${swc`w$~aC-p_@Ws~|hOPuyE_LfdE8&@azgdfC>&$jFaxww5a;y2Wx_WqGX z&>KjcY+OD&@m!dn3)WUpM@mVYpd{+C|0s&$g`lAs?cwTe04*S_D)P@D^wJBl`}&f#`bt6F^D8>b+oC-RC$ zPlwMHP5Y9!q_?s2>Tub?xu_$msb=eI8 zxASS>=`Q7f-61OpWo_f2895jeua&R+`D71ido{hz9s$^k1gAYy< z$!R*dbC|_LPfX49*696*Zy9WFXxQ#W;|KQiU{jV7IIRs;4~LQDOQgdTYjWh3_^wue zt@dSU31cRGcF7*@e<|v@Y-xK!4+t60r8`=FE7xxF^5NroJSe>Wu`6!RTnoO9Xr=8YyY&2LL^Kh761OSU4D3k2%=J#708!$z+T9W*aMG zNQi~g$E}+LVo3PE^nO%L@|JErnCd0hm??j#FBn@-CTSvTkwQ-!P6#Ohf(&aV= zZNYA%2Gc5m*Xe#(V!@S0jy8$9g?Y0FLzTgcrRGFw9^#^^DNXi8{rXG-(B_(>t;@RR zWYQ$=GqVQ1Kx*uxFGFvo)m6QTuA1YEzvxOz()Vci@QDZfl$m&CJ>=2A%UR+UiME3u zJg>#GtU*UN)ZI@haHpXwB*n~%AD?_&@uL#LUGk?8qksp}9GQ9N_%R&St$Dx)k9{#G zV)WJ}*X;_{L$}R+m<0vj&B*#a-YVXR1bWphiVe2993^+&tEaK@-siolaq74cpn2PR zE8*I@C>t7b-4dv}+r60tK&}OpmKXaP(5nFC3hZk@uV%QS_cc!ddC5ZclKkz_40tx* zfK@Q^of`s#)oC0Fj0g~4FYx&E37a%bs5R$ySKIeoj^s^~0?g1bv zzu!zC7Diot7D$ExUQSKT{R?+{031D!hynWa>`#33cZ&k#=HChI|M)Nc&-l&%*Rxry z_1Qg!5f>BAOajVZt#(!A$G5JExAw9&VtY8{-f=3(K~(4c{5_|MfUQ0C104ZxKt|+g zWy1_4Qc$q+35bLNp7m;09E^S(oC1Pr1%*Yj0-Ra?e8S11HMKRx4PkkPtr42t3>M*PrH7H2t!%vy7UUo! zxxJVDuM-m`gH1<1|mK)n8#o2c^PH&{)e}th$||~{p{{c z@8h48da5YKU4>X*Z2n2eUBIYuEdXXYN8m?fvum~%#2lzd?Yl2?D@2-X7IGh=x1l z^o?bFF`#l#4fFvzj_2|IQp<7b5QeZ4qaF$cI3Oqrkh#w1s^L)0wNfYotK3V!Yx2Ud z&^S(16$^c^s7T&Hc$t+GnI6b-6O2Kj>7Aj{^zbza8FI2Ew(-4EqX9A7Zt7H}Nmp9(>i!K**b_MJ@ck+gIylh zz1Ewinn!O}E~AA###Ztx-EmbE%fO|sgp}!UvR%LBQ~Y?wjY7LGvdeE))h*ASPB6Hg z98(WH5-_6f_!hc9-}F@d4DN&RY-FtJUe{SK7JRQM>nSF;b~h+@q>%}PCFZI@Bk)3| z*Zn}!3NC|(D=5cI^2{a24-2-cr%B{?V&aF10MaNaw8VUH$s|C%A=H)#Bm{rjY7G>b zz>yVsnQE5B4k+ zTv*XqF#^hQ{%}ecmBr0vTMqr+`lco$V!yO>oP)!(bWmYT9}JMIN*glxqTkdmor=;| z-~;lpmR&%TYK}?K^bQSoRJAu#U4GwjvR(FGcLdUgK2l55H2|8_!(T^gK&JB_npE_W zx@O?7S1$mt z0ZAlBn}&)X3xhZeg9-#wu19B7hO8ToQsmyi1|(&I)u`N&{Of5puW5adkR-5q>{4(8 zVzy3&6sAFf+=oQKMXK%BW7 z(rTkK`qC_Y&-$~#$GiMvFI8zRAb>QDtva~A{!J_vcJ&qHCDS*v%|e5gB#oc@aG2>8 zS2ax^zT2P#{41?dD62g7Xq6z?Wsu+Y^Ji)+%l2TKgZVngGp4L)q$yTnU!2iXdlU$a z0reN3==8?Ktjj2CGU`J4yuceD%JRZHq+0RDs0_ly+-qMQysp4Lw_=Vnx2EAwR;!CN z#gJx8$0eUkT65jT5=2?Cs|vDsU}ih7Kjx{NHN_AJrDApCgOX%Nh(`uxf%ZgS6 z8kvh;+OlG^R8(s+!MJ?y)u!{=OT=dUG$Bc%rroJeNPI24GE1$L~C@5_jFrY52U(g3ja7;iP;1|*SXfKDwGsA&tDL%s{z(k}=P zpe>i$R%2Ud_j_0#|FOUIu(2(W-8 z{>uWgR{CN}@aj}K;7O@aq!Z|yLz>VIoPO_O-Wl4u z^4pUuHkym=HWoI(!wc}v%)CWQ1|g$m=eZk}Rc5R0YtF`H7*XC}1#J3IY8KA8U<8~L zkBXH$qjAKLClN}2y6Lzg?EyBVk#9|-s3Fo7TSf5VWx(Ve7oW)+gnQK0zX)u`xrwmSZtIx+xK&H8W z6oexK(qr-yG1ovyKM&PW>rcU&zUk~leCD`9uQo!7+N!S#PbKndW;lHbA<51u&Ts#w zEZEFEOKR-pi??yblRp3xn}<^WN{iQ-ufnO)gY-30 zEbS-=|1K`pKvsNhQLVAp(d1!U!rM>jq9-=ORfKd+?5UsYw;GkJX9$1HgbsC4>Qn`! z$qfMh)G7<(%xyq=3VWu;B)sF>7xG&_{nfjE=6|9+c(byC`_A(x=-rTk5tyoY#d?CK znAv@{rE%47PiU0^ZBLD!dWzQq>794+(Nhm%J(#VR`fvLJpwP{Nr9p|H%l|or4nj&G z!OV<=1j8=;17#q12yA0xW1k`PbYc#0Q^DATFnT~Yi~_{%z;vQ-TJSuJ{*moh5@fdz zCZ_X+Gft64o^nQN9dbCAZCG$k5q*p?E@|bJiUa(atY+NhjkDLMAhd4&8fXG)Isgab z0`?lyRpe|EAaH%PNjN4p0%pDXe!ef7m9w3@8w9D3z4U-8+4#fwP}=ny@90;%Evj>G zF%=p=9FM(5;#8VR82{17k=SK=xnf$(H;7D5wRxoNL}}%gifT2yr};PnQ#z~gwB3CW z$SP(#wCQNO4#AIDM@x*(uK=!VgzL4bpNz5^& z$@GwAQf6c*PVd~^Cn6B5jR@$b#7g8V%E=9gDCBE8n9#N;FXlO)Myij7kbXuqQM{g15K2?y-h6=rmWDa|Ei)-`B*vZ46plwm+$5H_9v$7b1j#w-bK0rV9&TjT zC2*nqRlv%0kb)o9RyH`8_Lezeg@L=^P=!|gyr_N4605k|ttIA)mhQ8_Wxh2o9B14b z5DY|0fif!w;oN0+F^i@CD_ziKo4=LL@`8A$!D7JPc^MQyL9q&Kng9R7f(6>1O1bFQCyPF zN{I^sW0LBX);BaZ6|vjJaOpM!(%E88BYavG$J;b;MDN7&9v158;Vw2BqQnI~Zl);v zp2hXsT=Y@&oNF6zRQpZn)4C3hm0MG|k3OEtb5Fnc`V9hg1KJCVWRi^A5LS98hfo6s zn39+F2Vl_0iaHp>{cy-2*P)s{Yuy24jjF*Ed+#wi4S22>PJ*}?#*-oP(vEKAJDtx{ za76lVZ2|JNFeY0{LOovyCh3)=>2IJlbM2CYt4P{VXxUXtTHj99t%T(%Ea{L$3l~{+ zt%e7)PQaAJzSO)fNWt63=6567b#}_%J=A}#`;8ndFTm9hic8U)YQsx(0BO6+_2?Vw zL#3rMJ3&Oo_xV`p6*2XMR|>~=+b_e_V03q(&g`irN{jc{?)dGzerg|wRayMSe%;5v zOX1O~rxw@#@^gC@X?^`>=nAAJlzXBOnWk%0Cfv@l(5E7uiqW!m; zH+~TB1XvWHl!>CV0OtX46Bsfsf<7<6O(0MgsOsNj6bXrS;OuZ-+rPYTf$~1D?O)6? zU0pZe@?dVhZ~=4zbq=5?7p49WJ>~3NAO0@^f#|ElfBWq4=T!0M-~TpYgcK5+ua*9B zj?f!pQKDudd*G>K%!1wMsa9pCllu&EBvg~B%+5&U3``h02)H{XoCBpA92;k*Nr_L# zf{0d%&&)EUCM19`uyCiNS)~=%H9ctPZ7YG=zTui=UEkc@4zu4CKvSQc~h#HB#&_+Jq6)WTkYK`;lyiL^j$f+=j8iZcban zNrr9QwymgQof_zM5?oTMx5#`ZPkx88X-t1Yan>mv2^JY&Qg#SFA zfCV0z#Gp18-~B2p4yROfk?pv<+#$=A>cj`6+L5=DgJcCrO0~-xZ3_2&MYrd7Q)P$C zFq@>w@aL94XGF*cyzUDzV>OX%akQf29+p3%XLzsnQkQn3(*E)ne|X;?wf%_aZ|Rbv zK)MrH5abLJK_i8wfZGrVG>(H4jf=Yt7##rB&A@QV$hiNHq7w}kvane4@}B&zaWS#3 zD_7KhQztLJ-@s4}kgxu%^xuKEK#c=5%5yUWpwRy%So+^GZ~vz`m_S9R{xLI0#0@et zgQS74wew}$3}IY(Q-`(G=es-j7NK&g#k%flMMK&gDr`?|rhcBAX8xL)MFiYP892Ow zuQj067P*9g6TlIdQbe5c^ZD$kI0bT11(lXU2nG-Cobsw>16C#?hEl-%qBls$2%CaV zw{L7bFp{8CNS&FTi&yyB{8(gt5Pj_o4dH=oY!S3P58%If>zRG`D z`0+FFlA5c{m#Sq=r<~vVVYJBnhp@=@8 z_F&WJ`Jp_Y1_XP$<-(PP_!@VO!B`X7>8Bd523X`)9aL1ZOT0D|j9LY%X`LRePhwu= zDV1@zDifDrl@?o#a|iwthLZ!x51wpgHyTG7NjjG;nVae7e*x|@=--k zBaKQ$4`JEUkck7qOSDJGvIF5&!;(uX~9RLe}+(7*2gDm)8SVe2y0Nqv4 z75NL2_{EqIWf5d%28L8PpVWzO!DKiMk=bav(hT#tJ_Cl#=0M@Gu$5!R)dG+NGd|L` z8<;z@uwnou6=jc4EDja&^=Jdni!_2KM2JiZq>H*G4uwmeyy#L1i% zd1k=v6AaaUZhLca7ggNRe~s821aoa<15e!B1jXc)ukBu8>y(&A#csVn&WPz%HAw*(>1l?|Z(P&R~O zVnZ;)0T=d!#9&+;LIMn|Bw)UZ$Ac0=@p4N_OVMr$IJjkX_3@ElFm_Bsdq+S@T1IDI zM}A>(7V&>1FHBmHT%)`CVl;4Zd1ZCA0-U}~v_rPH2BeA+54I+~JN`J0i35h#CVu+y zlXyd7PD9TVmXz z$bvCBd`w)u!&=LnkW(`LC7Q_bWZRjEj18qHbV<~fiXW2|ii>YqpZMQ&SAIE<0>Pbb zzoxwfR#v#vM`p~t3ZJXixh9rvUB?Hy$;b72p*>aS-B=~v+gSQLx2sedY=5+d^E6kl z^#uclOuVp)4Le^(6>qA)eIK|$yq#b!K)Q$k1whdM%CWGj@bI1jXC&Z#prw^Q&u|1T zNoT<6=whG;9t3f5abT>Mm6g3fS^k;kQ_aoIF9w~551#@rfTN@1KeG;S(FG{+eTYAQA7qCyMr@^`P(}6D^Y&sh2Qx9k1Q1AttE$*-63l)R{fBKS zg~S0{qq@p&+|WH&P^En*yNs5&VrweI-591|HqW8%VE z8D8Jm+B|y{)8Ika62<7-qX16Nt>Y6Pjwr^$ug7d`iXq;K+GA>z@wakej!i(7@cZAY*XTlmW$&3-l16K%FbbAQ#!D3D&$fe;3eihD`lL{%hyT~cDS#zJ8&E9TAeM8+HXa_{1!?;ni35&} zV?dbzbnSoi7Ggk+Toec}F8ryq__yKUk1g-lng4vn``;{$-!=045A4HVmJkC9zl!Ar zSBYMcD)#MW7$qjS$5~bEAxG%5##~#r#4U->W|FE`bK8Nl>M8$36z={_%yNHhf=wg)g%WvSJyU0Fj~QyJHpa}7(4s? zov4b#9Y@Vcu`zJf?3Bk|+@hzzB&LaY`TAx+WkT5U<_$U`qW1nbp70pJdeRL(xPJ8J zBM#N)FMVIX{WyGyuXw<8&9`YcMJiY@QPzpj;Y#@21D1h%RLn%&Lp7>6Jd{$Q{Sd9b z;W#yZG~2d7MdyFx2G$Jb2C!E;5C|)inJv=XI@78&cVfS@8aj@&UE!*D@A>|$US<`< zOB7_dEj=N{!DRiImQR4@qASMsLQH2g>uU5`L{Q^x*-jh>+ zv7dN3J$2+EBPQaLh+wCsqoUv@2hN_6DL~)`4W+PDY6?C9#M9piU%RN-uC%b?VJY-( zjYVBU<2^igK-ALN)!T>mnH|2AJH`+H%cqD9#M=NyfOtVLbe#jNv=l&Ngn@wp49!p| zKunvbr;h{R4xrkBtq_2o5$Jyr+}z&4HxfWRu3lBYD0?6a<-#WH{CfWM{D5wM@kIna zhyS0xg1;;L;t%Y2WbFAzai|AqR^TT=usR}e>8ETHW!-QILW31l6apop@r%d#L#0Sm zif&SS^OLAq^7f-pi#i=08CkPj96lwigK?x+4i}S9qi$+?=Eb>7=bX%6{y+H&E>NZ=s-|aABHy@kageG@%7vzn7DL zTfMOYRyonNzKc`N8{K(mjrdsGf5f@!JR?AwKB9?BZ<=YY<=U%(8z1SYtRt*Wr?jqx zc8)rrQsuuTN)k9Y&hY>i?c{NKAtgbxo899;H?Q@Bz`$jbhV|j$@>! zp(5uXjuXNaOaBk-2)$ne;;r(uxW6rFFo>5O#14wV2*E(Rr(^ufXpK%l2O{mxU6n5| zVpciRI_Xe)rHjne^G^uis*E13|67rE=;sEIS&uewmQ;anhcEz9JKYLa0AW9^F|n)( zvul+7WkcobHh{1XkdciUTTOKdrKwP`IzJ-%d{tEvJ(L32RQ?{jxcbUi@}+Z=0;5(x ze00tvy;t6UWn%VwH6xl^0aC*hk{=Ld_Sa({EcWKLO*;?Ikb99y5R^vTy+97kLR32 zL~jCFwbFaVW{M^*Sb~zJwZi;W?<(f;mm0@TqRa-lIQ_C#C5qJTmjMpZ*OsF(6VKCp zj=Jy1%{MSzP}Wr@5$Di z_m2HP+mad~)JrtAV7l?yPN?{J6918ur+y%rZa5`Rhu(NfbAZjk2Q9a16|xp4>H@tk z_M-CIDxwpbW;Y@5urtQ1*i!UOg6qd&A*O`a2~y1_4@VP!v{;wOB=POB=t|S z!X7QJI-EWG(w+}HcJc5gCVKcP@Q&5v^;h1#5>LCckD6;W)jL-aiB+kbJt<#;Tz8U9 zeerkmldi@kHYLAf=3^+EC~m5J0DE%a2~}$gjFns0VaQ`d}dEOCH_w*@C!}?r#ywBOk|{ucF2@nx=UQq`&xvvAB3PLp_tFjuzx z%;aGOd~Qee(@SR4j4eekJ!@{n%f$;3eZ78TQ!p-QVS`v6Z}hUHIH?F~W?+0o%!)dnouCa$Q#yTc-6BH5|amniA&S>hCbk0uJIV zuUy(XQ+&7gI4jvVK)ixFL<#cbc39dyE&}(-z}7(uB2g;In54?xYyYI zxk&=*RP4mNs2ZhQcK1-k_Px1HOQw5+h4RaL56w1po+W4(kUEvE#7<}#Vc)9ueNfKD zQ>LHf+7MOwslq;j#}%7f_i+oQWx$L|9IJK@tXj;r!CQ2aU&}rH_KjV&ur0jEmkT*hO6ycqRO$#n!L#2@T7_-p{h! zS;s6VhF8y7A2ykG=p^uUrEy=Q5^u?>C3fQxyJrG+>407*^W5=}tC;@Md9r0EeB5@| z=XQROzw#yJ#5!xARGYAsQueezWvll9!DUQ0WHK)S?md<@4vt{K6+ zL%j8vNHWQ5@cLeg%2F=e&XKjhc*rS z1rW#T-0oq&oN@)DZixXaeGcy#-GhsxPoJBmi&S1{F3MTrSd7R75%1b@x_7@Ij_{`8o1)2a>_V!%AHqw85et*!qK%6$ z@4oYNUtGN#rPNl=M;A*mEXT`? zEt{9l9*7!AL>?u!8FF$zZ5h8`nV&rKeOuy7%7Wv>ab_0LCEPD=WY_pV;=F6!rK%IU zeGv8pX4bw3E|+-WrE*Y0$GdCbQ1enZv8GMh>&;?qi?$xoXZ+Bz0|8c1Z3CH`^+~F4 zmK-nZvsU(6j&=;X;FK>MPkd?1OXVuc@mQg5KJMxA+6z?oSl3tloCEXt0A+PoncIDoa(66KFP(=27A$DFW{N$p}&u$ODy`^^e zy!=S-Y{zZ-^f2x0yUX>b%>ll656Z3?v3Wmb>=8Iyb?W+g*YC>DH!r8Mw7t%@WwE~K z@_>e=PjylG$4_x#?pK6R_L@C z&i?MKT>}ho-R+tJa_+k$);RCY@$2i6Sx5w0;hM&C z23TA9mQM%nAGzAQUb^W@;v^9S4+`3W1hSg=yPpIp1`=@R$e<7+Te`unLBaW=!J!h` zh%+C*2v`UnhhwZ>hzmzh;;vw{D`{GC$iZfat2|i}PH3rVKz_49(Xct&2cHr>UZJ^A zXdbG1j^9%vtS;6cmh+_1>SmjwIBGhq7AL${BE0{EgCWO!;Doz8IedIBd;&)5eG)El z-ErEA`za1-vR*{^bO@nC#KK9$YIDGp1Zf^DlE5-@$2WY}m2a>i^3}RGk&xXxSFZRu zk}ip;ljJBA0(NS}S34I4(!c4iNIFIm9p@ND4yM6wiGHLLNr1<(brMCK!u4GuhRRLb z$vLJ@7Dj80zzvCDP~u^tiDko6B^n82Pldy&^b1-arR&aCC> zQ{vKV<48=5rSUkHtw^rY#NUNP;b=xHgm4`-$A=5Ys#zltGzr4Op+rgvIwS0QEeY!{ zVhvl^pt}i1C2S26iI!YSq?(EMX*g(F5@m$rAGTa4$%%H5ENZF0CZOXSyN1{UWSu9VfBWMa*f#IFpgEhz-PDMTM) zGw0#i^CTIPsn29m#6waC3RBBl;HD`gMPE}#dZJ#6rqxT*@s5z3u%x!kGgHzK_DZJr zauLF6Q@fPt+Cu0E*3w4inQB5vCcdVh)}+5kVR_}2!5N#efR|!0pFs~v9X`X${Hc%` zXq}lKlD1nyzu%GxU(ckMO+Fl9I+Dyf6^j1c!t9=s^}QzRdkNFeuUQbOOP?gOz2XwF zxv$}+(t}&GtM{@;@gnZx=1>^q_)}!mTIZ}6=IF4JYK-K7FmmZw1C+UPmo(!!S_Qdm z)Ol=}DTFflpgcAdd0r-=BJR{8T%>Q^@}zALXA%il7AP*$=Ib~lFe&G!ttBZg&>&j# zZ#(4UPbI3^+@ci1yLCznb1%>U#~bW3Twf?K9_1vYEiBTCf@Z z$(jq|7RiQ^YA6@ErWQ#&4su^8x}@c~xmz@!L@LN#%%fQxxKEyemlSfwOOFArY+TRD9U#)rOyp3=H@QjCu?>kJ)ADBZOy1l zCCkz+lkO>MwxKX;E%VzfOX`W}rX@9U3G9<1ZFMiFi-{Nwb$v!l(R*61im0IKDSx3% z8RcHVTv8$Zp>!#f#5b92#4VR3i9ve*QzX(Yri z7Q}D95$7RHTlz4KG)1?>evI7bMrnd^^GoFxDw8G=lSXT9_e2#^nU^hCG49XwDL*O~ z`tnpKdyp5=RhQ7^MLnR%yHPlY(@I)XSMNb5>)1x>BiY(kq4_OC_d`?1w>GD#Rw`)2 zHHYBZ%k8g++X>mW7C%eW&klvuT*2kT4 zv_n(qA(2$?%wptg(q6N#-SstkFwYx!p;=d!`Xp2<+vFv#wKH{dbevpnqqfcBlx`Qa zt%_)4^7qI{9lQ2!q^)+QlXksC=6gEkQm>J8KW$0h^UnjfRR^ugEB39dT1o~NpmrO5 zsZ0c|xNU>31d_2_1wZKqF~*Yb(X(M6v>T)k5l9c~jSK~zwGaCe@H)5+Io|1~I_NZ; z9@NGg`c6I&{=LHcpiXQ&E;^kpXDQ0jR+-wZjL$N@8#VIIXPCTX_`{oyIN z^jYq+uP6Pr>(8FGN0znoRZ54C*s|vxgjiVWuHtqy%l7pmFea8-vJ8!%2ah?-h4-Zg z6{m;n7%EzYKTE)UzTf+-19zh7PQwSvo_xe@D0WyOrT)~y^DBBoOV0XThQZo}p^3W_ zKaZX-?@axyorpk8pB?E2CmT%Z1alKULKRQ`yz_iUB8c-$UX;(v|Ai_~V|1V-gZjN@ zqq{SBszv^LwnDEC{JFv}i97mlsES|Vb5YaL?&9{-ydt6A;Y3v-lG)$cv;#^b={I`a zXF@1-Oz*8*!7u*9`~J-^;$0B3Ldqh;^8te%`S8nYTjcg}(ILF2@rV;n2 zQ&{I1Zp>w1%=FAYI$&)axj(0DH|Byfe>HEeGU)jSze&$8ufAQM^edX(x}{M$)JGsU zKSZTOOo6S-`$Yfl)vcvA*NDf-UNW{rE;U}Bg*O}cWu_9H@yFX`BCj}=bs!VpK32LS z1E!iJxWPnG(v#)|w;M8cOFnjDEPv>FW1^-aHHGW30^;(XOKkgT;;w z{s}7rHTB}hhHMjt1D>6e_J)fU>l6T+Lh!N#zlqc(JzZ}j6S=0DGBrz`;oF1Tu)S>) z%RwAb0_o+oD>@R7Il4phcU(V<52x_H&3tQRNZl#0VJw@(1xE6%O=EU ze4j#DUYq3ckXi9$Z@guf;Es#i)wuC)?w$YU!<8DbK=0mniF91datI*?kY}ckwj=DY zlW&{R`zj+h&ExmV2>7>UZM*gG7}+)7SZQqYNcP^hkw^Gv%fZ8r99P48EF3>r5eP+* z;X|ShEq#%uwLJCqhYxAsd?GaAO3-vc?oIF_(Hbt3TULIz;0MDL#vDc$F!KlVSm1~) zG9^tb`II7*RIoCdSqQKr*HV)Tp!+OzyghP6K8@R-y>UH;AW#UN4*EoLiietteUAJT z>_e76<&2X{3z4BQBrbdm|5PleWldTz6ixN0=JAbd)K^wEi@EI;dcL@yRWQdG0h)!& F{|AT5 literal 0 HcmV?d00001 diff --git a/_images/taup_wavefront.jpg b/_images/taup_wavefront.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b357d04e19de6a176d24a57011897de64fc35c1e GIT binary patch literal 61108 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 e75v|5`uB=u(lz-QJn*pKDWjc0SFQT<{r> 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 literal 0 HcmV?d00001 diff --git a/_sources/anaconda/index.md b/_sources/anaconda/index.md new file mode 100644 index 00000000..da9ab7f0 --- /dev/null +++ b/_sources/anaconda/index.md @@ -0,0 +1,192 @@ +# Anaconda/Miniconda + +- 本节贡献者: {{田冬冬}}(作者)、{{姚家园}}(审稿) +- 最近更新时间:2023-09-23 + +--- + +[Anaconda](https://www.anaconda.com/download/) 是一个跨平台的、用于科学计算的 Python 发行版, +其提供了 Python、包管理器 `conda` 并内置了几百个科学计算相关的软件包。 +[Miniconda](https://docs.conda.io/en/latest/miniconda.html) 可以看做是 +Anaconda 的精简版,其只提供了 Python、包管理器 `conda` 以及相关的必须依赖包。 + +与 Anaconda 相比,Miniconda 安装包更小,安装速度更快,且安装后占用的硬盘空间更小。 +Anaconda 内置的数百个软件包也都可以很容易通过 `conda` 安装。因而, +**建议所有 Python 用户使用 Miniconda,而非 Linux 或 macOS 系统自带的 Python。** + +## 安装 + +1. 下载 Miniconda + + 根据自己使用的系统,从 [Miniconda 官方下载页面](https://docs.conda.io/en/latest/miniconda.html#latest-miniconda-installer-links) + 或 [清华大学 Miniconda 镜像](https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/) 下载对应的安装包。 + + - Linux 64 位系统: + [官方链接](https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh) | + [清华镜像](https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh) + - Windows 64 位系统: + [官方链接](https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe) | + [清华镜像](https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Windows-x86_64.exe) + - macOS (Intel 芯片): + [官方链接](https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh) | + [清华镜像](https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-MacOSX-x86_64.sh) + - macOS (M1 芯片): + [官方链接](https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh) + [清华镜像](https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-MacOSX-arm64.sh) + +2. 安装 Miniconda + + ::::{tab-set} + + :::{tab-item} Windows + 直接双击安装包即可安装。 + ::: + + :::{tab-item} Linux + ``` + $ bash Miniconda3-latest-Linux-x86_64.sh + ``` + ::: + + :::{tab-item} macOS + ``` + # Intel 芯片 + $ bash Miniconda3-latest-MacOSX-x86_64.sh + # M1 芯片 + $ bash Miniconda3-latest-MacOSX-arm64.sh + ``` + ::: + + :::: + + Miniconda 默认会安装到 {file}`${HOME}/miniconda3` 下,在安装过程中可以 + 设置为其他路径。 + + 安装通常只需要十几秒,在安装的最后会出现: + + ``` + Do you wish the installer to initialize Miniconda3 by running conda init? [yes|no] + [yes] >>> + ``` + + 建议输入 `yes`,此时安装包会向当前 SHELL 的配置文件(如 {file}`~/.bashrc` + 或 {file}`~/.zshrc`)中写入 `conda` 初始化语句。 + +3. 测试安装 + + 打开一个新的终端,在终端中输入 `python`,输出中看到 **Anaconda, Inc.** + 字样即代表安装完成: + + ``` + $ python + Python 3.8.5 (default, Sep 4 2020, 02:22:02) + [Clang 10.0.0 ] :: Anaconda, Inc. on darwin + Type "help", "copyright", "credits" or "license" for more information. + >>> + ``` + +# 配置 `conda` + +Anaconda/Miniconda 中提供的 `conda` 命令可以用于安装 Python 包、管理虚拟环境, +此外,也可以使用 Python 自带的工具 `pip` 来安装 Python 包,其详细用法见 +[pip 官方文档](https://pip.pypa.io/en/stable/)。我们建议尽可能使用 `conda` 来安装 Python 包, +仅在 conda 没有提供需要的程序包时才使用 `pip` 来安装。 + +在使用 `conda` 前需要对 `conda` 做简单的配置。 + +[conda-forge](https://conda-forge.org/) 是一个由社区维护的大量 Python 包的通道。 +为 conda 增加 conda-forge 通道,可以安装更多的软件包: +``` +$ conda config --add channels conda-forge +``` + +设置通道优先级为 strict。当一个包同时位于 conda-forge 和 main 通道时,总是使用 conda-forge 提供的包, +以避免混用 conda-forge 和 main 通道导致环境依赖关系解析变慢: +``` +$ conda config --set channel_priority true +``` + +显示通道 URL,以更清楚地知道每个包是从哪个通道安装的: +``` +$ conda config --set show_channel_urls true +``` + +配置使用国内清华源以加快软件包下载速度: +``` +$ conda config --add default_channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main +$ conda config --set 'custom_channels.conda-forge' https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud +``` + +设置 `conda` 使用更快的 libmamab solver: +``` +$ conda config --set solver libmamba +``` + +## 使用 conda + +以下仅介绍一些 `conda` 的常用命令,其详细用法见 +[conda 官方文档](https://docs.conda.io/projects/conda/en/latest/index.html)。 + +创建虚拟环境: +``` +# 虚拟环境名为 seismo-learn,初始 Python 版本与 base 环境相同 +$ conda create --name seismo-learn +``` + +激活虚拟环境: +``` +# 激活名为 seismo-learn 的虚拟环境 +$ conda activate seismo-learn +``` + +取消激活当前虚拟环境: +``` +$ conda deactivate +``` + +:::{note} +安装 Anaconda/Miniconda 后,打开终端默认会激活 base 环境。不经常使用 +Python 的读者可以通过如下命令取消此默认设置: + +``` +$ conda config --set auto_activate_base False +``` + +取消后,可以临时激活 base 环境: +``` +$ conda activate base +``` + +重新激活此默认设置: +``` +$ conda config --set auto_activate_base True +``` +::: + +搜索模块: +``` +$ conda search numpy +``` + +安装模块: +``` +$ conda install numpy +``` + +更新模块: +``` +$ conda update numpy +``` + +使用 pip 安装模块: +``` +$ pip install numpy +``` + +## 参考文档 + +- +- +- +- +- diff --git a/_sources/cps/index.md b/_sources/cps/index.md new file mode 100644 index 00000000..6ca20cb0 --- /dev/null +++ b/_sources/cps/index.md @@ -0,0 +1,20 @@ +# CPS + +- 软件名称: Computer Programs in Seismology +- 作者: [Robert B. Herrmann](https://www.eas.slu.edu/People/RBHerrmann/) +- 主页: +- 官方文档: +- 最新版本: v3.30 (2022-11-08) +- 适用平台: {{Linux}} {{macOS}} {{Windows}} +- 编程语言: Fortran、C +- 许可协议: 未知 + +--- + +:::{note} +CPS 在十几年前就发布了 3.30 版本,之后不断修复程序错误和更新代码,但并未更新版本号。 +因而 CPS v3.30 实际上有多个不同的小版本。 + +本教程仅在 Linux 和 macOS 系统下使用 v3.30 (2022-11-08) +测试通过,其余版本或系统可能有所差异。 +::: diff --git a/_sources/cps/install.md b/_sources/cps/install.md new file mode 100644 index 00000000..2c60289e --- /dev/null +++ b/_sources/cps/install.md @@ -0,0 +1,105 @@ +# 安装 + +- 本节贡献者: {{田冬冬}}(作者)、 {{姚家园}}(审稿) +- 最近更新日期: 2021-01-26 + +--- + +{{ install_notes }} + +1. 下载: + + CPS 源码需要先填写申请表格才可以下载。 + 在 填写表格并提交。 + + % CPS 的源码也可以直接 http://www.eas.slu.edu/eqc/eqc_cps/ 的 download 目录下载 + +2. 解压: + + ``` + $ tar -xvf NP330.Nov-08-2022.tgz + ``` + + 将解压得到的 {file}`PROGRAMS.330` 文件夹移至 {file}`~/src/` 目录下,并重命名为 {file}`CPS` + + ``` + $ mkdir -p ~/src/ + $ mv PROGRAMS.330 ~/src/CPS + ``` + +3. 安装依赖 + + ::::{tab-set} + + :::{tab-item} Fedora + ``` + $ sudo dnf install libX11-devel + ``` + ::: + + :::{tab-item} Ubuntu/Debian + ``` + $ sudo apt install libx11-dev + ``` + ::: + + :::{tab-item} macOS + ``` + # macOS 安装 XQuartz 后需要重启方可生效 + $ brew install --cask xquartz + ``` + :::: + +4. 配置: + + 若使用的是 Linux 系统,首先需要确认当前系统是 32 还是 64 位。 + 终端键入 `uname -a`,若输出中包含 `x86_64` 则是 64 位,若输出包含类似 + `i686` 则是 32 位。 + + 进入源码目录: + + ``` + $ cd ~/src/CPS + ``` + ::::{tab-set} + + :::{tab-item} 64 位 Linux 系统 + ``` + $ ./Setup LINUX6440 + ``` + ::: + + :::{tab-item} 32 位 Linux 系统 + ``` + $ ./Setup LINUX40 + ``` + ::: + + :::{tab-item} macOS 系统 + ``` + $ ./Setup OSX40 + ``` + ::: + :::: + + :::{note} + 终端键入 `./Setup` 可查询全部选项。 + ::: + +5. 编译: + + ``` + $ ./C + ``` + + 接下来会编译一段时间,最终在 bin 目录下应该生成一百多个可执行文件。 + +6. 修改环境变量,将 CPS 的 bin 路径添加到环境变量 **PATH** 中: + ``` + $ echo 'export PATH=${HOME}/src/CPS/bin:${PATH}' >> ~/.bashrc + $ source ~/.bashrc + ``` + +7. 检查安装是否成功 + + 终端键入一些 CPS 的命令,比如 `sdisp96 -h`,若出现该命令的使用选项则表示安装成功。 diff --git a/_sources/cps/intro.md b/_sources/cps/intro.md new file mode 100644 index 00000000..5446670b --- /dev/null +++ b/_sources/cps/intro.md @@ -0,0 +1,55 @@ +# 简介 + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-01-26 + +--- + +CPS,全称 Computer Programs in Seismology, +着重于理解和解释地震波在地球地壳和上地幔中的传播。 +其可以计算**水平分层模型**下的理论地震图、反演面波频散和远震 P 波接收函数、 +反演震源深度、震源机制和地震矩、处理地震波形数据以及绘图。 +整个程序包很好地集成在一起,所有程序都使用相同的地球速度模型格式、波形格式和图形格式。 + +软件包中包含了完整的[说明文档](http://www.eas.slu.edu/eqc/eqc_cps/CPS/CPS330.html), +官方主页上还给了不少[教程](http://www.eas.slu.edu/eqc/eqc_cps/TUTORIAL/), +不仅仅教授如何使用软件,同时也介绍了很多地震学的基础知识。 +即使不使用该软件,文档和教程中的一些内容也是有参考价值的。 + +此外,官方主页上还有一些[讲义](http://www.eas.slu.edu/eqc/eqc_cps/workshop.html)和[用户问题和开发者解答](http://www.eas.slu.edu/eqc/eqc_cps/Questions)值得一看。 + +## 特色功能 + +1. 合成地震图 + + - 广义射线法 + - 波数积分法 + - 模态叠加法 + - 渐进射线理论 + +2. 地球结构反演 + + - 面波频散反演 + - 远震 P 波接收函数反演 + - 面波频散和接收函数联合反演 + +3. 震源反演 + + - 面波辐射花样反演震源机制 + - 波形反演震源深度、震源机制、矩张量 + +4. GSAC + + GSAC,全称 Generic Seismic Application Coding, + 可以认为是 SAC 的重新实现,作者给了一些需要重写 SAC 的理由。 + +5. CALPLOT + + 为了实现代码的易移植性,CPS 自带了 CALPLOT 绘图包。 + +## 引用 + +- Herrmann, R. B. (2013). + Computer Programs in Seismology: An Evolving Tool for Instruction and Research. + *Seismological Research Letters*, 84(6), 1081–1088. + diff --git a/_sources/fk/index.md b/_sources/fk/index.md new file mode 100644 index 00000000..dd12d162 --- /dev/null +++ b/_sources/fk/index.md @@ -0,0 +1,19 @@ +# fk + +- 软件名称: fk +- 作者: [Lupei Zhu](https://www.eas.slu.edu/People/LZhu/home.html) +- 主页: +- 最新版本: v3.4 +- 适用平台: {{Linux}} {{macOS}} +- 编程语言: Fortran, C, Perl +- 许可协议: MIT + +--- + +:::{note} +fk v3.4 发布于 2022 年,其之后程序中的一些小问题被修复,但并未更新版本号。 +因而 fk v3.4 实际上有多个不同的小版本。 + +本教程仅在 Linux 和 macOS 系统下使用 v3.4 (下载于 2023-05-01,软件包中 +文件的最新日期为 2022-07-30)测试通过,其余版本或系统可能有所差异。 +::: diff --git a/_sources/fk/install.md b/_sources/fk/install.md new file mode 100644 index 00000000..040f99d5 --- /dev/null +++ b/_sources/fk/install.md @@ -0,0 +1,68 @@ +# 安装 + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2023-05-01 + +--- + +{{ install_notes }} + +1. 下载: + + ``` + $ wget http://www.eas.slu.edu/People/LZhu/downloads/fk3.4.tar + ``` + +2. 解压: + + ``` + $ tar -xvf fk3.4.tar + ``` + + 将解压得到的 {file}`fk` 文件夹移至 {file}`~/src/` 目录下: + + ``` + $ mkdir -p ~/src/ + $ mv fk ~/src/ + ``` + +3. 修改 fk 源码 + + fk3.4(下载于 2023-05-01,软件包中文件的最新日期为 2022-07-30)的 {file}`Makefile` 文件 + 存在,因而需要做一些小修改方可使用。主要修改如下: + + - 需要添加 `FC=gfortran` 指定使用 gfortran 编译器 + - 需要给变量 `FFLAGS` 加上 `-ffixed-line-length-none` 使得 Fortran 一行可以超过 72 字符 + - 第 6-7 行被注释了,所以 `fk` 无法使用 SAC 提供的滤波功能。 + 若已安装 SAC ,则可以将第 6—7 行的行首注释符号 `#` 去掉,并给变量 `SACLIB` + 加上 `-no-pie` 参数(若操作系统无法使用该参数,手动删除即可) + + :::{note} + 为了便于用户使用,我们对 fk 源码做了以上修改,并提供了 patch 文件,供用户使用。 + 下载 patch 文件 {download}`fk3.4-v20220730.patch`,将其放在 fk 源码目录下, + 然后执行如下命令即可修改源码: + + ``` + $ cd ~/src/fk/ + $ patch < fk3.4-v20220730.patch + ``` + ::: + +4. 进入源码目录并编译: + + ``` + $ cd ~/src/fk/ + $ make + $ make clean + ``` + +5. 修改环境变量,将 fk 路径添加到 **PATH** 中: + + ``` + $ echo 'export PATH=${HOME}/src/fk/:${PATH}'>> ~/.bashrc + $ source ~/.bashrc + ``` + +6. 检查安装是否成功 + + 终端键入 `fk.pl` 若出现 帮助信息则表示安装成功。 diff --git a/_sources/fk/intro.md b/_sources/fk/intro.md new file mode 100644 index 00000000..184cae97 --- /dev/null +++ b/_sources/fk/intro.md @@ -0,0 +1,66 @@ +# 简介 + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2023-05-01 + +--- + +fk 可以用于计算**水平分层模型**下的理论格林函数并合成理论地震图。 + +## 功能 + +1. 支持计算爆炸源、双力偶和单力源下的格林函数和理论地震图 +2. 支持计算静态格林函数 +3. 理论上可以计算至任意高频 + +## 命令及脚本 + +fk 中提供了如下几个命令和脚本。通常只需要调用 `fk.pl` 生成格林函数,再 +调用 `syn` 将格林函数合成为三分量理论地震图: + +- `fk`:用于计算格林函数的主程序,也是 fk 的核心程序 +- `st_fk`:用于计算静态格林函数的主程序 +- `fk.pl`:对 `fk` 和 `st_fk` 的封装,一般情况下直接使用该脚本即可 +- `syn`:用于将格林函数合成为三分量理论地震图的程序 +- `fk2mt`:将 fk 生成的格林函数转换为地震矩张量的每个分量所对应的格林函数 +- `trav`:用于计算 P、S 初至到时的辅助程序 +- `sachd`:用于修改 SAC 头段的辅助程序 + +## 参考文献 + +若想要了解 fk 的基本原理,可以阅读如下文章: + +- Haskell, N. A. (1964). + Radiation pattern of surface waves from point sources in a multi-layered medium. + *Bulletin of the Seismological Society of America*, 54(1), 377–393. + +- Takeuchi, H., & Saito, M. (1972). + Seismic surface waves. + *Methods in Computational Physics: Advances in Research and Applications*, 11, 217-295. + +- Wang, C. Y., & Herrmann, R. B. (1980). + A numerical study of P-, SV-, and SH-wave generation in a plane layered medium. + *Bulletin of the Seismological Society of America*, 70(4), 1015–1036. + +- Zhu, L., & Rivera, L. A. (2002). + A note on the dynamic and static displacements from a point source in multilayered media. + *Geophysical Journal International*, 148(3), 619–627. + + +阅读的相关建议: + +1. 若想了解如何使用 fk,直接阅读本教程即可 +2. 若想了解 fk 中每个选项的物理含义,需阅读 Zhu and Rivera (2002) +3. 若想理解代码的实现细节,则需要在 Zhu and Rivera (2002) 的基础上,阅读其余三篇文章, + 至少要阅读 Haskell (1964) +4. 需要注意,尽管这几篇文献介绍的是同一种方法,但很多符号的定义是有区别的。 + 在推导代码中的公式时应以 Zhu and Rivera (2002) 为准。 + Zhu and Rivera (2002) 区别于前面其他文献的地方主要在于,其重新定义了传播矩阵, + 并将静态解与动态解统一到同一个公式中 + +## 引用 + +- Zhu, L., & Rivera, L. A. (2002). + A note on the dynamic and static displacements from a point source in multilayered media. + *Geophysical Journal International*, 148(3), 619–627. + diff --git a/_sources/gcap3d/index.md b/_sources/gcap3d/index.md new file mode 100644 index 00000000..b5dfc60d --- /dev/null +++ b/_sources/gcap3d/index.md @@ -0,0 +1,20 @@ +# gCAP3D + +- 软件名称: gCAP3D +- 作者: [Lupei Zhu](http://www.eas.slu.edu/People/LZhu/home.html) +- 主页: +- 最新版本: v1.2 +- 适用平台: {{Linux}} {{macOS}} +- 编程语言: C、Fortran、Perl +- 许可协议: MIT + +--- + +:::{note} +gCAP3D v1.2 发布后,程序中的一些小问题被开发者修复,但并未更新版本号。 +因而 gCAP3D v1.2 实际上有一些不同的小版本。 + +本教程仅在 Linux 和 macOS 系统下使用 v1.2 +(下载于 2021-01-13,软件包中文件的最新日期为 2020-01-31) +测试通过,其余版本或系统可能有所差异。 +::: \ No newline at end of file diff --git a/_sources/gcap3d/intro.md b/_sources/gcap3d/intro.md new file mode 100644 index 00000000..b0558b3d --- /dev/null +++ b/_sources/gcap3d/intro.md @@ -0,0 +1,43 @@ +# 简介 + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-01-13 + +--- + +gCAP3D 可用于反演震源机制解。 + +## 功能 + +1. 支持反演完整的地震矩张量 +2. 支持使用三维模型下的格林函数 + +## 命令及脚本 + +gCAP3D 中提供了如下几个命令和脚本: + +- `cap3D`:用于反演地震矩张量的主程序,也是 gCAP3D 的核心程序 +- `cap3D.pl`:对 `cap3D` 的封装,一般情况下直接使用该脚本即可 +- `depth.pl`:用于读取 `cap3D` 输出的不同深度震源的结果,并估计最佳震源深度 +- `mtdcmp`:将地震矩张量分解为 ISO、DC 以及 CLVD 三个部分 +- `radpttn`:将 ISO、DC 以及 CLVD 三个部分合成为归一化的地震矩张量, + 并计算 P、SV 以及 SH 波的辐射花样 + +## 引用 + +- Zhao, L. S., & Helmberger, D. V. (1994). + Source estimation from broadband regional seismograms. + *Bulletin of the Seismological Society of America*, 84(1), 91-104. + +- Zhu, L., & Helmberger, D. V. (1996). + Advancement in source estimation techniques using broadband regional seismograms. + *Bulletin of the Seismological Society of America*, 86(5), 1634-1641. + +- Zhu, L., & Ben-Zion, Y. (2013). + Parametrization of general seismic potency and moment tensors for source inversion of seismic waveform data. + *Geophysical Journal International*, 194(2), 839-843. + +- Zhu, L., & Zhou, X. (2016). + Seismic moment tensor inversion using 3D velocity model and its application to the 2013 Lushan earthquake sequence. + *Physics and Chemistry of the Earth, Parts A/B/C*, 95, 10-18. + diff --git a/_sources/index.md b/_sources/index.md new file mode 100644 index 00000000..514f8f67 --- /dev/null +++ b/_sources/index.md @@ -0,0 +1,47 @@ +# 地震"学"软件 + +欢迎阅读由[地震"学"小组](https://github.com/orgs/seismo-learn/people)整理和维护的《地震"学"软件》。 + +本教程主要介绍一些地震学常用软件的安装及用法,并提供一些实用示例,供地震学专业的 +学生和工作者学习和使用。 + +欢迎使用这些软件的用户参与到教程的维护与更新中,以进一步改进和完善本教程, +造福更多的地震学工作者。 请通过如下方式给予反馈: + +1. {octicon}`comment-discussion` [留言参与讨论](https://github.com/orgs/seismo-learn/discussions) +2. {octicon}`issue-opened` 在教程源码仓库下[提交 Issue](https://github.com/seismo-learn/software/issues) +3. {octicon}`git-pull-request` 修改文档并[提交 Pull Request](https://github.com/seismo-learn/software/pulls) + +::::{grid} 1 2 2 4 +:gutter: 4 4 3 3 + +:::{grid-item-card} 数据下载 +- [](obspy/index.md) +- [](sod/index.md) +::: + +:::{grid-item-card} 数据处理 +- [](cps/index.md) +- [](obspy/index.md) +::: + +:::{grid-item-card} 震相走时 +- [](obspy/index.md) +- [](taup/index.md) +::: + +:::{grid-item-card} 合成地震图 +- [](cps/index.md) +- [](fk/index.md) +::: + +:::{grid-item-card} 震源机制反演 +- [](cps/index.md) +- [](gcap3d/index.md) +::: + +:::{grid-item-card} 实用工具 +- [](utilities/distaz.md) +- [](/utilities/saclst.md) +::: +:::: diff --git a/_sources/intel-oneapi/index.md b/_sources/intel-oneapi/index.md new file mode 100644 index 00000000..39cdd68c --- /dev/null +++ b/_sources/intel-oneapi/index.md @@ -0,0 +1,105 @@ +# Intel OneAPI 软件开发工具包 + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(作者) +- 最近更新时间: 2022-01-08 + +--- + +[Intel oneAPI](https://software.intel.com/content/www/us/en/develop/tools/oneapi.html) +是 Intel 公司提供的免费软件开发工具包。该工具包中包含了 C/C++ 编译器(`icc` 命令) +和 Fortran 编译器(`ifort` 命令),以及 MKL 数学库、MPI 并行库等众多软件开发工具。 + +:::::{tab-set} + +::::{tab-item} Fedora +Fedora 系统下,官方手册提供了[多种安装方式](https://www.intel.com/content/www/us/en/developer/articles/guide/installation-guide-for-oneapi-toolkits.html)。 +这里,我们推荐使用 ``dnf`` 安装。 + +下载 {file}`.repo` 文件 {download}`oneapi.repo`,并将其放在 {file}`/etc/yum.repos.d` 目录下: +``` +$ sudo mv oneapi.repo /etc/yum.repos.d/ +``` + +根据自己的需要安装 C/C++ 或 Fortran 编译器,默认安装目录是 {file}`/opt/intel/oneapi`: +``` +# 安装 C/C++ 编译器 +$ sudo dnf install intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic + +# 安装 Fortran 编译器 +$ sudo dnf install intel-oneapi-compiler-fortran +``` + +安装完成后还需要配置环境变量: +``` +$ echo "source /opt/intel/oneapi/setvars.sh >/dev/null 2>&1" >> ~/.bashrc +``` + +:::{dropdown} Intel 软件开发工具列表 +使用如下命令可以列出 Intel 软件仓库提供的所有软件包: +``` +$ sudo -E dnf --disablerepo="*" --enablerepo="oneAPI" list available +``` +::: +:::: + +::::{tab-item} Ubuntu +Ubuntu 系统下,官方手册提供了[多种安装方式](https://www.intel.com/content/www/us/en/developer/articles/guide/installation-guide-for-oneapi-toolkits.html)。 +这里,我们推荐使用 ``apt`` 安装。 + +添加 Intel 软件仓库: + +``` +# 下载 Intel 仓库公钥并添加到 apt 源密钥环中 +$ wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB +$ sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB +# 删除公钥文件 +$ rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB + +# 添加软件仓库 +$ sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main" +$ sudo apt update +``` + +根据自己的需要安装 C/C++ 或 Fortran 编译器,默认安装目录是 {file}`/opt/intel/oneapi`: +``` +# 安装 C/C++ 编译器 +$ sudo apt install intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic + +# 安装 Fortran 编译器 +$ sudo apt install intel-oneapi-compiler-fortran +``` + +安装完成后还需要配置环境变量: +``` +$ echo "source /opt/intel/oneapi/setvars.sh >/dev/null 2>&1" >> ~/.bashrc +``` + +:::{dropdown} Intel 软件开发工具列表 +使用如下命令可以列出 Intel 软件仓库提供的所有软件包: +``` +$ sudo -E apt-cache pkgnames intel +``` +::: +:::: + +::::{tab-item} macOS +macOS 下,官方手册提供了[多种安装方式](https://www.intel.com/content/www/us/en/developer/articles/guide/installation-guide-for-oneapi-toolkits.html)。 +这里,我们下载离线安装包进行安装。 + +根据自己的需要,从官网下载 [C/C++ 编辑器](https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html#compilerclassic) +或 [Fortran 编译器](https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html#fortran) 的离线安装包(Offline), +然后直接双击安装。默认安装目录是 {file}`/opt/intel/oneapi`。 + +安装完成后还需要配置环境变量: +``` +$ echo "source /opt/intel/oneapi/setvars.sh >/dev/null 2>&1" >> ~/.zshrc +``` + +:::{dropdown} Intel 软件开发工具列表 +Intel oneAPI 提供了众多软件开发工具,用户可以根据需要到 +[Intel 官网](https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html) +下载其他 macOS 离线安装包并安装。 +::: +:::: + +::::: diff --git a/_sources/java/index.md b/_sources/java/index.md new file mode 100644 index 00000000..5d1c31ac --- /dev/null +++ b/_sources/java/index.md @@ -0,0 +1,41 @@ +# Java 运行环境 + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新时间: 2021-01-26 + +--- + +运行 Java 语言写的程序时,需要安装 Java 运行环境。 + +在终端键入 `java -version`,若显示版本信息,则表示 Java 运行环境已安装: + +``` +$ java -version +openjdk 14.0.2 2020-07-14 +OpenJDK Runtime Environment (build 14.0.2+12-46) +OpenJDK 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing) +``` + +否则,则需要安装 Java 运行环境。 + +::::{tab-set} + +:::{tab-item} Fedora +``` +$ sudo yum install java-latest-openjdk +``` +::: + +:::{tab-item} Ubuntu/Debian +``` +$ sudo apt install default-jdk +``` +::: + +:::{tab-item} macOS +``` +$ brew install openjdk +$ sudo ln -sfn $(brew --prefix)/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk +``` +::: +:::: diff --git a/_sources/obspy/index.md b/_sources/obspy/index.md new file mode 100644 index 00000000..8ce13be6 --- /dev/null +++ b/_sources/obspy/index.md @@ -0,0 +1,17 @@ +# ObsPy + +- 软件名称: ObsPy +- 作者: ObsPy Development Team +- 主页: +- 官方文档: +- 源码地址: +- 最新版本: ![GitHub release)](https://img.shields.io/github/v/release/obspy/obspy) +- 适用平台: {{Linux}} {{macOS}} {{Windows}} +- 编程语言: Python +- 许可协议: LGPL + +--- + +:::{note} +本教程仅在 Linux 系统下使用 ObsPy v1.4.0 测试通过,其余版本或系统可能有所差异。 +::: diff --git a/_sources/obspy/install.md b/_sources/obspy/install.md new file mode 100644 index 00000000..9a77ce34 --- /dev/null +++ b/_sources/obspy/install.md @@ -0,0 +1,21 @@ +# 安装 + +- 本节贡献者: {{ 姚家园 }}(作者)、{{ 田冬冬 }}(作者) +- 最近更新日期: 2022-07-04 + +--- + +1. {doc}`安装并配置 Anaconda/Miniconda ` + +2. 安装 ObsPy 及其依赖: + ``` + $ conda install obspy cartopy + ``` + +3. 检查安装是否成功 + + 终端键入以下命令,若出现 ObsPy 版本号则表示安装成功: + ``` + $ python -c "import obspy; print(obspy.__version__)" + 1.4.0 + ``` diff --git a/_sources/obspy/instrument-response.md b/_sources/obspy/instrument-response.md new file mode 100644 index 00000000..9fa64003 --- /dev/null +++ b/_sources/obspy/instrument-response.md @@ -0,0 +1,125 @@ +--- +jupytext: + text_representation: + extension: .md + format_name: myst + format_version: 0.13 + jupytext_version: 1.13.0 +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +# 仪器响应 + +- 本节贡献者: {{田冬冬}}(作者)、{{姚家园}}(审稿) +- 最近更新日期: 2023-05-13 + +--- + +## 利用 SAC 零极点文件去除仪器响应 + +SAC 零极点文件是一种常见的仪器响应格式。若有 SAC 零极点格式的仪器响应文件, +则可以使用 {func}`obspy.io.sac.sacpz.attach_paz` 函数将对应的零极点文件添加到 +{class}`~obspy.core.trace.Trace` 的 `stats.paz` 属性中,再使用 +{meth}`Trace.simulate ` 函数去除仪器响应。 + +首先准备一些示例所需的波形数据和 SAC 零极点文件: +```{code-cell} ipython3 +from obspy import UTCDateTime +from obspy.clients.fdsn import Client +from obspy.clients.iris.client import Client as irisClient + +starttime=UTCDateTime("2022-09-22T06:18:00") + +# 下载 IU.ANMO 台站的三分量波形数据 +client = Client("IRIS") +st = client.get_waveforms("IU", "ANMO", "00", "BH?", starttime, starttime + 720) + +# 下载 IU.ANMO 台站三分量对应的 SAC 零极点文件 +irisclient = irisClient() +irisclient.sacpz("IU", "ANMO", "00", "BH1", starttime, filename="IU.ANMO.00.BH1.SACPZ") +irisclient.sacpz("IU", "ANMO", "00", "BH2", starttime, filename="IU.ANMO.00.BH2.SACPZ") +irisclient.sacpz("IU", "ANMO", "00", "BHZ", starttime, filename="IU.ANMO.00.BHZ.SACPZ") +``` + +下面以其中一个波形为例,展示如何使用 SAC 零极点文件去除仪器响应: +```{code-cell} ipython3 +tr = st[2].copy() # 垂直分量 +print(tr) +``` + +{func}`obspy.io.sac.sacpz.attach_paz` 函数会读取并解析 SAC 零极点文件,并将 +解析后的结果附加到 `Trace` 的 `stats.paz` 属性中: +```{code-cell} ipython3 +from obspy.io.sac.sacpz import attach_paz + +attach_paz(tr, paz_file="IU.ANMO.00.BHZ.SACPZ") +``` +`Trace.stats.paz` 属性是一个词典,包含了 `poles`、`zeros` 和 `gain` 等属性: +```{code-cell} ipython3 +from pprint import pprint +pprint(dict(tr.stats.paz)) +``` +使用 {meth}`Trace.simulate ` 函数去除仪器响应: +```{code-cell} ipython3 +tr.simulate(paz_remove=tr.stats.paz) +``` + +对于包含多个波形的 `Stream` 而言,同理。可以对 `Stream` 中的每个 `Trace` 进行循环, +为每个 `Trace` 附加对应的 SAC 零极点文件并去除仪器响应: +``` +for tr in st: + attach_paz(tr, paz_file=f"{tr.id}.SACPZ") + tr.simulate(paz_remove=tr.stats.paz) +``` +也可以在为每个 `Trace` 附加 SAC 零极点文件后,调用 +{meth}`Stream.simulate ` 函数批量去除 +仪器响应: +``` +for tr in st: + attach_paz(tr, paz_file=f"{tr.id}.SACPZ") +st.simulate(paz_remove="self") +``` + +## 校正到 WWSP 仪器响应 + +在使用地核震相研究地核结构时,有时会需要将波形校正到 WWSP +(即 World Wide Standard Seismograph Station short period)仪器响应。 +SAC 软件中内置了 WWSP 仪器响应,可以直接使用命令 `transfer ... to wwsp` 将 +波形校正到 WWSP 仪器。而 ObsPy 中没有内置 WWSP 仪器响应的信息,因而需要自行定义 +WWSP 仪器响应信息并做校正。 + +准备示例所需数据: +```{code-cell} ipython +from obspy import UTCDateTime +from obspy.clients.fdsn import Client + +starttime=UTCDateTime("2022-09-22T06:18:00") +client = Client("IRIS") +st = client.get_waveforms("IU", "ANMO", "00", "BH?", starttime, starttime + 720) +``` + +定义 WWSP 仪器响应,需要零极点和增益信息。这些信息可以从 SAC 源代码 +{file}`sac/src/icm/wwsp.c` 中获得。定义如下: +```{code-cell} ipython +paz_wwsp = { + "poles": [ + -5.0136607 + 6.4615109j, + -5.0136607 - 6.4615109j, + -8.2981509 + 0.0j, + -8.6940765 - 7.1968661j, + -8.6940765 + 7.1968661j, + ], + "zeros": [0j, 0j, 0j], + "gain": 397.54767, + "sensitivity": 1.0, +} +``` +定义好 WWSP 仪器响应后,即可使用 {meth}`Stream.simulate ` +函数去除仪器响应: +```{code-cell} ipython +st.simulate(paz_simulate=paz_wwsp) +``` +该方法也同样适用于其他 SAC 内置仪器响应。 diff --git a/_sources/obspy/intro.md b/_sources/obspy/intro.md new file mode 100644 index 00000000..a6c10fdb --- /dev/null +++ b/_sources/obspy/intro.md @@ -0,0 +1,55 @@ +# 简介 + +- 本节贡献者: {{ 姚家园 }}(作者)、{{ 田冬冬 }}(审稿) +- 最近更新日期: 2021-01-02 + +--- + +ObsPy 是地震学数据处理的 Python 软件包,极大促进了地震学应用程序的快速开发。 +其可以用来读写多种地震学数据格式,下载地震目录、台站元数据和波形数据,以及处理和分析波形数据等, +满足了日常科研中与地震学数据相关的大部分需求。 + +## 特色功能 + +日常的地震学科研工作需要下载、处理和分析波形数据,然后提取出有效的 +观测物理量(如震相到时、振幅),用来反演震源和地下结构。下载、处理和分析波形数据的 +一般步骤如下: + +1. 下载地震目录 +2. 下载台站元数据,如台站位置和仪器响应 +3. 下载波形数据 +4. 波形数据格式转换 +5. 匹配地震和台站元数据 +6. 波形数据处理 +7. 波形数据分析 + +其他地震学软件(如 SOD、SAC)往往只具有以上一个或几个功能,ObsPy 的特色在于: + +1. 可以完成以上所有步骤 +2. 可以使用丰富的 Python 软件包,如 [NumPy](https://numpy.org/)、 + [SciPy](https://www.scipy.org/)、 + [Matplotlib](https://matplotlib.org/)、 + [pandas](https://pandas.pydata.org/) 等 +3. 支持目前绝大多数地震学数据格式的读写 +4. 生态良好,已有许多基于 ObsPy 开发的软件包 + +## 引用 + +如果使用 ObsPy(直接使用或作为其他程序包的依赖包)开展研究工作并发表了学术文章, +可以引用以下参考文献的任意一篇: + +- Beyreuther, M., Barsch, R., Krischer, L., Megies, T., Behr, Y., & Wassermann, J. (2010). + ObsPy: A Python Toolbox for Seismology. + *Seismological Research Letters*, 81(3), 530–533. + +- Megies, T., Beyreuther, M., Barsch, R., Krischer, L., & Wassermann, J. (2011). + ObsPy – What can it do for data centers and observatories? + *Annals Of Geophysics*, 54(1), 47-58. + +- Krischer, L., Megies, T., Barsch, R., Beyreuther, M., Lecocq, T., Caudron, C., & Wassermann, J. (2015). + ObsPy: a bridge for seismology into the scientific Python ecosystem. + *Computational Science & Discovery*, 8(1), 014003. + + +此外,也可引用实际使用的 ObsPy 版本, +如 ObsPy 1.4.0([10.5281/zenodo.6645832](https://doi.org/10.5281/zenodo.6645832))。 diff --git a/_sources/sod/index.md b/_sources/sod/index.md new file mode 100644 index 00000000..3218749f --- /dev/null +++ b/_sources/sod/index.md @@ -0,0 +1,17 @@ +# SOD + +- 软件名称: SOD +- 作者: [Philip Crotwell](https://github.com/crotwell) +- 主页: +- 官方文档: +- 源码地址: +- 最新版本: ![GitHub release)](https://img.shields.io/github/v/release/crotwell/sod) +- 适用平台: {{Linux}} {{macOS}} {{Windows}} +- 编程语言: Java +- 许可协议: GPL + +--- + +:::{note} +本教程仅在 Linux 和 macOS 系统下使用 v3.2.10 测试通过,其余版本或系统可能有所差异。 +::: diff --git a/_sources/sod/install.md b/_sources/sod/install.md new file mode 100644 index 00000000..fab8b4a8 --- /dev/null +++ b/_sources/sod/install.md @@ -0,0 +1,45 @@ +# 安装 + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2020-12-30 + +--- + +{{ install_notes }} + +1. {doc}`安装 Java 运行环境 ` + +2. 下载: + + ``` + $ wget http://www.seis.sc.edu/downloads/sod/3.2.10/sod-3.2.10.tgz + ``` + +3. 解压: + + ``` + $ tar -xvf sod-3.2.10.tgz + ``` + +4. 将 SOD 安装到 {file}`~/opt/` 目录下: + + ``` + $ mkdir -p ~/opt/ + $ mv sod-3.2.10 ~/opt/ + ``` + +5. 修改环境变量,将 SOD 的 bin 路径添加到 PATH 中: + + ``` + $ echo 'export PATH=${HOME}/opt/sod-3.2.10/bin:${PATH}' >> ~/.bashrc + $ source ~/.bashrc + ``` + +6. 检查安装是否成功 + + 终端键入 `sod -v` 若出现 SOD 版本号则表示安装成功: + + ``` + $ sod -v + SOD 3.2.10 + ``` diff --git a/_sources/sod/intro.md b/_sources/sod/intro.md new file mode 100644 index 00000000..8ba9608b --- /dev/null +++ b/_sources/sod/intro.md @@ -0,0 +1,72 @@ +# 简介 + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-07-10 + +--- + +SOD,全称是 Standing Order for Data,可以自动筛选并下载地震目录、台站元数据和波形数据, +并对波形数据做预处理。其具有高度可定制化的特点,可以满足日常科研中地震学数据下载的大部分需求。 + +## 特色功能 + +申请地震波形数据的一般流程为: + +1. 获取完整的地震目录,根据需求筛选出自己需要的地震事件 +2. 获取台站列表,根据需求对台站通道码、位置、震中距、方位角等进行筛选 +3. 根据发震时刻、震相走时、震中距等信息确定要申请的波形数据的起始、结束时间 +4. 申请数据 +5. 下载数据 +6. 数据解压以及预处理 + +SOD 的特色在于: + +1. 只需要一个配置文件(SOD 中称为 recipe)即可完成上面提到的全部步骤 + +2. 灵活的地震筛选规则: + + - 可以在 USGS、IRIS 等数据中心提供的地震目录的基础上,根据发震时刻、震源区域、深度、 + 震级等条件进行筛选 + - 可以由用户自行提供地震目录(需要满足 SOD 对地震目录的格式要求) + - 可以构建虚拟地震以申请连续波形数据 + - ... + +3. 灵活的台站筛选规则: + + - 可以选择一个或多个指定的台网、台站或通道 + - 可以筛选某个区域内的台站 + - 可以筛选在某个特定点的特定距离、方位角、反方位角内的台站 + - 可以下载指定通道的仪器响应文件 + - ... + +4. 灵活的波形筛选规则: + + - 仅下载震中距、方位角、反方位角满足条件的数据 + - 仅当某个震相存在时才下载该台站的数据(如仅当震中距大于 115 时才有 PKIKP 震相) + - 仅当地震与台站的连线中点位于某个区域是才下载数据(比如想要用 PcP 研究某个特定区域的核幔边界结构) + - 仅当指定震相的前后多少秒内没有其他震相干扰时才下载数据 + - 灵活的时窗截取规则,可以根据发震时刻、自动计算的震相理论到时等来设置数据时窗 + - 可直接生成 BREQ_FAST 文件以通过邮件方式申请数据 + - 可以将波形数据以多种格式保存到磁盘中,如 miniSEED、SAC、ASCII、WAV 等格式 + - ... + +5. 数据并行下载,速度快无延迟 + +6. 将数据写入磁盘前/后,可对数据进行常见的数据预处理 + +除了以上特色外,SOD 的配置文件有一个优点和一个明显的缺点: + +- 优点:入门很容易,因为别人写的配置文件一看就懂,修改起来也简单 +- 缺点:从头写配置文件较困难,因为 SOD 本身其实较为复杂 + +因此,[地震“学”小组](https://github.com/orgs/seismo-learn/people)创建了 +[SOD-recipes](https://github.com/seismo-learn/SOD-recipes) 项目, +用于收集、整理以及维护 SOD 的常见用法。用户可以通过阅读、修改和使用这些配置文件片段来理解 SOD 的用法。 +也欢迎更多用户贡献自己的配置文件。 + +## 引用 + +- Owens, T. J., Crotwell, H. P., Groves, C., & Oliver-Paul, P. (2004). + SOD: STANDING ORDER FOR DATA. + *Seismological Research Letters*, 75(4), 515–520. + diff --git a/_sources/sod/recipe.md b/_sources/sod/recipe.md new file mode 100644 index 00000000..fb23619c --- /dev/null +++ b/_sources/sod/recipe.md @@ -0,0 +1,156 @@ +# 配置文件 + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(作者) +- 最近更新日期: 2022-08-16 + +--- + +运行 SOD 需要使用配置文件(称为 recipe),是一个 XML 格式的纯文本文件,其定义了数据筛选和处理的一系列规则。 +在终端输入以下命令,即可按照配置文件(假设文件名为 {file}`recipe.xml`)定义的规则下载数据: + +``` +$ sod -f recipe.xml +``` + +## 初识配置文件 + +### 运行第一个配置文件 + +在终端中执行以下命令,会生成一个名为 {file}`demo.xml` 的配置文件示例: + +``` +$ sod --demo -r > demo.xml +``` + +执行以下命令,运行该配置文件(大约需要一分钟): + +``` +$ sod -f demo.xml +Congratulations, valid recipe. +262 km WNW of Haveluloto, Tonga (-20.6, -177.7) 378 km 2003/01/04 05:15:03 UTC 6.5 mwc +25 km WSW of Bolitoc, Philippines (15.7, 119.7) 10 km 2003/01/06 23:43:50 UTC 6.0 mwb +... +... +Channel: II.AAK.00.BHE +Channel: II.AAK.00.BHN +Channel: II.AAK.00.BHZ +... +... +Got 1 seismograms for II.AAK.00.BHE for eq on 2003/01/06 23:43:50 UTC +Got 1 seismograms for II.ARU.00.BHE for eq on 2003/01/06 23:43:50 UTC +... +... +``` + +运行后,可以看到一系列输出信息: + +- `Congratulations, valid recipe.` 表明当前配置文件可以使用 +- 事件信息,如 `262 km WNW of Haveluloto, Tonga (-20.6, -177.7)` +- 通道信息,如 `Channel: II.AAK.00.BHE` +- 获取地震波形信息,如 `Got 1 seismograms for II.AAK.00.BHE` + +下载的地震波形数据保存在 {file}`seismograms` 目录中,每个地震事件的波形数据则默认保存在以发震 +发震时刻命名的目录中。 + +### SOD 数据库文件 + +每次执行 SOD 时,SOD 还会在当前目录生成一些日志文件(文件名以 `log` 为后缀)和一个数据库文件夹 {file}`SodDb`。 +这些日志文件记录了 SOD 的运行和报错信息。数据库文件夹里的数据库文件中包含了单次运行时的全部信息, +如选中了哪些事件、哪些台站、事件台站对所对应的波形,也包含了哪些数据已经下载、哪些数据尚未下载的信息。 + +在下载数据过程中,若 SOD 意外退出,或由于网络等问题某些数据未成功下载,仍可重新执行 SOD 命令, +继续下载那些尚未被下载的数据,即实现断点续传的功能,这是因为数据库记录了哪些数据已经下载、 +哪些数据尚未下载。再次运行 SOD 时,会有以下提示: + +``` +The database for this run, SodDb/SodDb.log appears to already exist. +This is fine if you want to restart a run that crashed, but if you are trying to +start a fresh SOD run, you may wish to delete this database directory first. +Otherwise, SOD will consider any work in this database as already completed and will not redo it. +``` + +若修改了当前目录中的配置文件,再次运行 SOD 前,建议删除上一次运行时生成的数据库文件夹 {file}`SodDb`。 + +## 配置文件结构 + +SOD 配置文件是一个 XML 格式的纯文本文件。可以用文本编辑器查看示例配置文件 {file}`demo.xml`, +对配置文件结构和格式有个初步印象。 + +:::{dropdown} XML 格式简介 + +XML 的全称是 E**x**tensible **M**arkup **L**anguage,即可扩展标记语言, +用来结构化、存储以及传输信息。这种文件格式是一种“树”状结构,从“根部”开始,不断扩展到“枝叶”。 +一个简单的 XML 文件如下: + +```xml + + + + + Child One + 10 + + + Child Two + 8 + + + +``` + +其中: + +- `` 是 XML 声明,定义了 XML 的版本信息(`1.0`) +- `` 和 `` 是一个根标签的开始标签和关闭标签 +- 标签可以嵌套多层,如 `root` 标签嵌套了一系列子标签 +- 所有标签都必须有关闭标签 +- 标签区分大小写 +- 若某个标签中没有嵌套其他标签,则该标签可以简写为 `` 的形式,例如 `` +- `` 用于注释 +::: + +配置文件的根标签为 `sod`,根标签下有五个子标签,分别是: + +- `properties`:SOD 程序相关的属性配置 [一般不用] +- `eventArm`:事件筛选规则 +- `networkArm`:台站/通道筛选规则 +- `waveformArm`:波形数据筛选规则、下载和处理波形数据 +- `waveformVectorArm`:处理三分量波形数据 [不常用] + +通常我们只需要用到 `eventArm`、`networkArm`、`waveformArm` 。 +`eventArm` 和 `networkArm` 是互相独立的, +而 `waveformArm` 则依赖于 `eventArm` 和 `networkArm`。 + +```{figure} http://www.seis.sc.edu/sod/images/documentation/tutorials/arm_overview.png +:align: center +:width: 50% + +SOD 配置文件的结构 +``` + +所有的配置文件都符合如下基本结构: + +```xml + + + + + + + + + + + + + + + + + + + + + + +``` diff --git a/_sources/taup/index.md b/_sources/taup/index.md new file mode 100644 index 00000000..5839790a --- /dev/null +++ b/_sources/taup/index.md @@ -0,0 +1,17 @@ +# TauP + +- 软件名称: TauP +- 作者: [Philip Crotwell](https://github.com/crotwell)、Thomas J. Owens +- 主页: +- 官方文档: +- 源码地址: +- 最新版本: ![GitHub release)](https://img.shields.io/github/v/release/crotwell/TauP) +- 适用平台: {{Linux}} {{macOS}} {{Windows}} +- 编程语言: Java +- 许可协议: LGPL + +--- + +:::{note} +本教程仅在 Linux 和 macOS 系统下使用 v2.6.1 测试通过,其余版本或系统可能有所差异。 +::: diff --git a/_sources/taup/install.md b/_sources/taup/install.md new file mode 100644 index 00000000..be3dfd2c --- /dev/null +++ b/_sources/taup/install.md @@ -0,0 +1,40 @@ +# 安装 + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2023-05-04 + +--- + +{{ install_notes }} + +1. {doc}`安装 Java 运行环境 ` + +2. 下载: + + ``` + $ wget http://www.seis.sc.edu/downloads/TauP/TauP-2.6.1.tgz + ``` + +3. 解压: + + ``` + $ tar -xvf TauP-2.6.1.tgz + ``` + +4. 将 TauP 安装到 {file}`~/opt` 目录下: + + ``` + $ mkdir -p ~/opt/ + $ mv TauP-2.6.1 ~/opt/ + ``` + +5. 修改环境变量,将 TauP 的 bin 路径添加到 PATH 中: + + ``` + $ echo 'export PATH=${HOME}/opt/TauP-2.6.1/bin:${PATH}' >> ~/.bashrc + $ source ~/.bashrc + ``` + +6. 检查安装是否成功 + + 终端键入 `taup` 若出现 TauP 图形界面则表示安装成功。 diff --git a/_sources/taup/intro.md b/_sources/taup/intro.md new file mode 100644 index 00000000..e5a2a0da --- /dev/null +++ b/_sources/taup/intro.md @@ -0,0 +1,60 @@ +# 简介 + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-06-04 + +--- + +TauP 用于计算一维球状分层模型下地震震相的走时和路径。 + +## 功能与特色 + +与传统的地震震相走时计算软件 ttimes 相比,TauP 具有更多的功能和特色: + +1. 计算震相走时、射线参数、反射点、穿透点、射线路径、走时曲线等 +2. 内置震相解析器,支持任意震相名 +3. 部分兼容 ttimes 震相名: `ttp` 表示常见 P 波震相; + 同理,还有 `tts`、`ttp+`、`tts+`、`ttbasic`、`ttall` +4. 自带多个地球参考模型:iasp91、prem、ak135 等 +5. 支持自定义速度模型 +6. 直接在球坐标系下求解方程,不必做展平变换,与部分震相的解析解相比,TauP 的最大 + 误差为 0.01 秒,而 ttimes 的最大误差为 0.05 秒 +7. ObsPy 提供了 [TauP 的 Python 接口](https://docs.obspy.org/packages/obspy.taup.html) + +TauP 目前还存在一些缺点: + +1. 采用线性插值,可能带来 0.01 秒的误差 +2. 不支持 PKPab、PKPbc 等震相名 + +## 工具 + +TauP 既提供了图形界面 `taup`,也提供了以下命令行工具: + +- {doc}`taup_time`:计算震相的走时、射线参数、出射角、入射角等 +- {doc}`taup_curve`:计算走时曲线 +- {doc}`taup_path`:计算射线路径 +- `taup pierce`:计算震相在波速不连续面和指定深度的反射点和穿透点 +- {doc}`taup_wavefront`:计算波前面 +- {doc}`taup_table`:计算走时表 +- {doc}`taup_setsac` :将震相走时写入 SAC 头段变量中 +- `taup create`:预计算速度模型 +- `taup phase`:通过语言描述震相的射线路径 +- {doc}`taup_slowplot`:绘制速度模型的慢度-深度剖面 +- {doc}`taup_velplot`:绘制速度模型的速度-深度剖面 +- `taup velmerge`:将部分速度模型与一个标准模型合并以构成一个新的速度模型 + +## 参考文献 + +TauP 的实现原理基于如下文献: + +- Buland, R., & Chapman, C. H. (1983). + The computation of seismic travel times. + *Bulletin of the Seismological Society of America*, 73(5), 1271–1302. + + +## 引用 + +- Crotwell, H. P., Owens, T. J., & Ritsema, J. (1999). + The TauP Toolkit: Flexible Seismic Travel-time and Ray-path Utilities. + *Seismological Research Letters*, 70(2), 154–160. + diff --git a/_sources/taup/taup_curve.md b/_sources/taup/taup_curve.md new file mode 100644 index 00000000..d6b436c6 --- /dev/null +++ b/_sources/taup/taup_curve.md @@ -0,0 +1,87 @@ +# taup curve + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-05-31 + +--- + +`taup curve` 用于计算并绘制震相的走时曲线(走时-震中距关系曲线)。 + +## 基本用法 + +使用 `taup curve --help` 可查询该命令的完整用法和选项。大多数选项的含义与 +{doc}`taup_time` 相同,不再赘述。此处仅介绍常用用法。 + +计算震源深度为 300 km,P、S、PcP、ScS、PKiKP 震相的走时曲线: + +``` +$ taup curve -h 300 -ph P,S,PcP,ScS,PKiKP +``` + +该命令会将走时曲线信息以 GMT **plot** 或 **psxy** 命令可识别的格式输出到文件 +{file}`taup_curve.gmt` 中。 + +可以使用 `-o` 选项指定输出的文件名或输出到标准输出(屏幕)。例如,下面的第一行命令 +会将走时曲线输出到文件 {file}`time_curve.gmt` 中,第二行会输出到屏幕上: + +``` +$ taup_curve -h 300 -ph P,S,PcP,ScS,PKiKP -o time_curve +$ taup_curve -h 300 -ph P,S,PcP,ScS,PKiKP -o stdout +``` + +## 输出格式 + +输出的走时曲线用两列数据表示, + +- 第一列:震中距(单位为 °) +- 第二列:震相走时(单位为 s) + +多个震相的走时曲线之间用 `>` 符号分隔,其后接着当前走时曲线所对应的震相信息。 + +例如,上面命令输出的文件的内容为(仅显示部分): + +``` +> P for a source depth of 300.0 kilometers in the iasp91 model + 9.10 127.05 +10.99 150.20 +11.10 151.54 +11.21 152.81 +... +> S for a source depth of 300.0 kilometers in the iasp91 model + 9.96 250.39 +11.90 294.22 +13.34 326.40 +14.34 348.66 +... +``` + +`taup curve` 不仅可以输出震相走时,还支持输出折合走时(reduced traveltime) +或相对走时: + +- 使用 `-reddeg` 选项设置折合速度(reducing velocity),其单位为 °/s +- 使用 `-redkm` 选项设置折合速度(reducing velocity),其单位为 km/s +- 使用 `-rel` 选定指定某个参考震相,输出相对该参考震相的走时 + +## 绘制走时曲线 + +使用 `-gmt` 选项可以生成 GMT 绘图脚本({file}`taup_curve.gmt`),执行该脚本 +即可生成 PDF 格式的射线路径图: + +``` +$ taup_curve -h 300 -ph P,S,PcP,ScS,PKiKP -gmt +$ bash taup_curve.gmt +``` + +:::{note} +`taup curve` 命令生成的 GMT 脚本采用的是 GMT 5 语法。GMT 5 和 GMT 6 用户可以 +直接运行使用,而 GMT 4 用户则无法正确运行。 +::: + +绘制出来的图件效果如下: + +```{figure} taup_curve.jpg +:align: center +:width: 400 px + +`taup curve` 绘制的震相走时曲线 +``` diff --git a/_sources/taup/taup_path.md b/_sources/taup/taup_path.md new file mode 100644 index 00000000..585eedb3 --- /dev/null +++ b/_sources/taup/taup_path.md @@ -0,0 +1,87 @@ +# taup path + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-05-31 + +--- + +`taup path` 用于计算并绘制射线的传播路径。 + +## 基本用法 + +使用 `taup path --help` 可查询该命令的完整用法和选项。大多数选项的含义与 +{doc}`taup_time` 相同,不再赘述。此处仅介绍常用用法。 + +计算震源深度为 300 km,震中距 60° 处,P、S、PcP、ScS、PKiKP 震相的射线路径: + +``` +$ taup path -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP +``` + +该命令会将射线路径信息以 GMT **plot** 或 **psxy** 命令可识别的格式输出到文件 +{file}`taup_path.gmt` 中。 + +可以使用 `-o` 选项指定输出的文件名或输出到标准输出(屏幕)。例如,下面的第一行命令 +会将射线路径输出到文件 {file}`raypath.gmt` 中,第二行会输出到屏幕上: + +``` +$ taup path -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP -o raypath +$ taup path -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP -o stdout +``` + +## 输出格式 + +输出的射线路径用两列数据表示, + +- 第一列:震中距(单位为 °) +- 第二列:射线与地球中心的距离(单位为 km) + +多个震相的射线路径之间用 `>` 符号分隔,其后接着当前射线路径所对应的震相信息。 + +例如,上面命令输出的文件的内容为(仅显示部分): + +``` +> P at 575.40 seconds at 60.00 degrees for a 300.0 km deep source in the iasp91 model with rayParam 6.760 s/deg. +0.00 6071.0 +0.06 6061.0 +0.07 6059.9 +0.08 6058.8 +... +> PcP at 617.92 seconds at 60.00 degrees for a 300.0 km deep source in the iasp91 model with rayParam 4.026 s/deg. +0.00 6071.0 +0.03 6061.0 +0.04 6059.9 +0.04 6058.8 +``` + +如果加上 `--withtime` 选项,则输出会多一列,最后一列则给出了射线路径上每个点 +对应的走时。 + +## 绘制射线路径 + +使用 `-svg` 选项可以直接绘制 SVG 格式的射线路径图: + +``` +$ taup path -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP -svg +``` + +使用 `-gmt` 选项可以生成 GMT 绘图脚本({file}`taup_path.gmt`),执行该脚本即可生成 PDF 格式的射线路径图: + +``` +$ taup path -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP -gmt +$ bash taup_path.gmt +``` + +:::{note} +`taup path` 命令生成的 GMT 脚本采用的是 GMT 5 语法。GMT 5 和 GMT 6 用户可以 +直接运行使用,而 GMT 4 用户则无法正确运行。 +::: + +绘制出来的图件效果如下: + +```{figure} taup_path.jpg +:align: center +:width: 400 px + +`taup path` 绘制的射线路径图 +``` diff --git a/_sources/taup/taup_setsac.md b/_sources/taup/taup_setsac.md new file mode 100644 index 00000000..a241bb1e --- /dev/null +++ b/_sources/taup/taup_setsac.md @@ -0,0 +1,59 @@ +# taup setsac + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-05-31 + +--- + +{doc}`taup_time` 命令可以计算各震相的理论走时, +`taup setsac` 命令则用于计算理论走时并将走时信息写入到 SAC 文件头段变量中。 + +## 基本用法 + +使用 `taup setsac --help` 可查询该命令的完整用法和选项, +其用法相对简单,示例如下: + +``` +$ taup setsac -mod prem -evdpkm -ph P-0,S-1,PcP-8,ScS-9 *.SAC +``` + +- `-mod`:指定使用 PREM 模型,默认使用 iasp91 模型。 +- `-evdpkm`:由于历史原因,该命令默认 SAC 文件中的震源深度单位为米, + 而现在的 SAC 文件中的震源深度单位为千米。该选项设置深度的单位为 km。 +- `-ph P-0,S-1,PcP-8,ScS-9`:将 P 波到时标记到 SAC 头段变量 `T0` 中, + S 波到时标记到 `T1` 中,PcP 到时标记到 `T8`,ScS 到时标记到 `T9`。 + +## 说明 + +- SAC 中共有十个可用于存储时间的头段变量,即 `T0` 至 `T9` 。 +- 该命令在将震相走时标记到头段变量 `Tn` (n 取 0–9)的同时,还会修改对应的 + 头段变量 `KTn` 和 `USERn`,其中 `KTn` 中保存震相名, + `USERn` 中保存震相的射线参数(单位为 s/radian)。 +- 该命令计算的是震相的理论走时,还须知道发震时刻才能确定震相的理论到时, + 即震相的到时等于发震时刻加上震相的走时。 因而要求 SAC 头段变量 `O` (发震时刻) + 必须已赋值。 +- 该命令从 SAC 头段中读取地震深度和震中距信息,以计算震相理论到时。 + 因而要求 SAC 头段变量 `EVDP` (震源深度)必须已赋值。 + 若头段变量 `GCARC` (震中距,单位为 °)或 `DIST` (震中距,单位为 km)未赋值, + 而震源和台站位置的头段变量(`EVLA`、`EVLO`、`STLA`、`STLO`)已赋值, + 该命令可以自动计算震中距,但此时计算的震中距未考虑椭球校正,因而有一定的误差。 + 建议将 SAC 头段变量 `LCALDA` 设置为 `TURE`,则当事件和台站的坐标被写入 + 或被修改时,头段变量 `GCARC`、`DIST` 会自动计算,而 SAC 计算震中距时 + 考虑了地球的扁率(赤道半径 6378.160 km,扁率为 0.00335293)。 +- 在某些震中距,单个震相会有多个到时。比如在震中距 20° 附近,S 波会出现三分支现象 + (Triplication),TauP 会得到七个 S 波到时,但只有最早的到时会被写入到 SAC 头段中。 + +:::{warning} +若在执行该命令前,SAC 头段变量 `Tn` 中已有值,该命令会覆盖其原始值! +::: + +:::{warning} +若执行命令时忘记了指定 `-evdpkm` 选项,此时若震源深度小于 1 km (1000 m), +该命令会给出警告。 + +需要注意,一定不要按 {kbd}`Ctrl+C` 终止执行命令。因为 `taup setsac` +需要将 SAC 文件读入内存,进行修改,再将内存中的数据写回磁盘覆盖原文件。 +使用 {kbd}`Ctrl+C` 终止命令会导致文件写回磁盘失败,进而导致部分 SAC 文件损坏。 + +正确的做法是不理会这些警告,待程序执行完毕之后再加上 `-evdpkm` 选项重新执行。 +::: diff --git a/_sources/taup/taup_slowplot.md b/_sources/taup/taup_slowplot.md new file mode 100644 index 00000000..93cb7f6b --- /dev/null +++ b/_sources/taup/taup_slowplot.md @@ -0,0 +1,50 @@ +# taup slowplot + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-06-01 + +--- + +`taup slowplot` 可以很方便地生成用于绘制慢度-深度剖面的 GMT 脚本。 + +## 慢度定义 + +此处的慢度定义为 $s = \frac{r}{v}$,单位为 s/rad。在球坐标系下, +射线参数(即水平慢度)的定义为 $p = \frac{r \sin\theta}{v}$,其中 +$\theta$ 是射线与径向的夹角。在地震波传播过程中,射线参数保持不变。 +因此,由于地球不同深度处的半径 r 和速度 v 不同,角度 $\theta$ 也会发生变化。 +在某一深度处,若 $\theta = 90$,则射线将在该深度折返。 +因而慢度-深度模型展示了某个射线参数对应的射线所能采样的最大深度。 + +## 基本用法 + +使用 `taup slowplot --help` 可查询该命令的完整用法和选项。此处仅介绍其常用用法。 + +绘制 iasp91 参考模型的慢度模型: + +``` +$ taup slowplot -mod iasp91 +``` + +执行该命令会生成脚本 {file}`iasp91_slow.gmt`。执行该脚本即可生成 PDF 格式的速度模型图片: + +``` +$ bash iasp91_slow.gmt +``` + +绘制出来的图件效果如下(图中蓝线为 P 波慢度,红线为 S 波慢度): + +```{figure} taup_slowplot.jpg +:align: center +:width: 400 px + +`taup slowplot` 绘制深度-慢度图 +``` + +例如,射线参数为 400 s/rad 的 P 波的折返深度约为 1500 km,因而无法采样到更深 +的地幔以及地核。 + +:::{note} +需要注意的是,由于外核 S 波速度为 0,所以外核仅允许 P 波通过。上图中, +在外核深度范围内(2889-5153.9 km),S 波慢度实际上采用的是 P 波慢度。 +::: diff --git a/_sources/taup/taup_table.md b/_sources/taup/taup_table.md new file mode 100644 index 00000000..211de40e --- /dev/null +++ b/_sources/taup/taup_table.md @@ -0,0 +1,50 @@ +# taup table + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-06-04 + +--- + +`taup table` 用于计算一系列深度和震中距的震相走时表。 + +使用 `taup table --help` 可查询该命令的完整用法和选项。此处仅介绍常用用法。 + +计算 PKiKP 震相的走时表(默认使用 iasp91 模型): + +``` +$ taup table -ph PKiKP -o PKiKP_table.dat +``` + +该命令会将不同深度和震中距的 PKiKP 走时表输出到文件 {file}`PKiKP_table.dat` 中。 +以下展示该文件的部分内容: + +``` +... (省略很多行) +iasp91 30.00 15.0 PKiKP 1001.95 0.658 30.00 PKiKP +iasp91 31.00 15.0 PKiKP 1002.62 0.679 31.00 PKiKP +iasp91 32.00 15.0 PKiKP 1003.31 0.700 32.00 PKiKP +... (省略很多行) +``` + +其输出有 8 列,从左到右的含义分别是: + +1. 速度模型名称 +2. 震中距(度) +3. 震源深度(km) +4. 震相名 +5. 震相走时(秒) +6. 震相慢度(秒/度) +7. Purist 距离:地震波实际走过的圆弧距离。见 {doc}`taup_time` 中的相关说明 +8. Purist 震相名:地震波的“真实”震相名。见 {doc}`taup_time` 中的相关说明 + +可以与 `taup time` 命令的输出做对比,进一步验证输出中每列的含义: + +``` +$ taup time --ph PKiKP -mod iasp91 -deg 30 -h 15 + +Model: iasp91 +Distance Depth Phase Travel Ray Param Takeoff Incident Purist Purist + (deg) (km) Name Time (s) p (s/deg) (deg) (deg) Distance Name +----------------------------------------------------------------------------------- + 30.00 15.0 PKiKP 1001.95 0.658 1.97 1.97 30.00 = PKiKP +``` diff --git a/_sources/taup/taup_time.md b/_sources/taup/taup_time.md new file mode 100644 index 00000000..6ce2aaae --- /dev/null +++ b/_sources/taup/taup_time.md @@ -0,0 +1,197 @@ +# taup time + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-05-31 + +--- + +`taup time` 命令可用于计算震相走时、射线参数、出射角、入射角等信息。 + +## 基本用法 + +使用 `taup time --help` 可查询该命令的完整用法和选项,此处仅介绍常用用法。 + +计算震源深度为 300 km,震中距 60° 处,P、S、PcP、ScS、PKiKP 震相的走时信息: + +``` +$ taup time -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP +``` + +- `-h`:震源深度(单位 km),默认深度为 0.0 km。 +- `-deg`:震中距(单位 °) +- `-ph`:以逗号分隔的震相名 + +TauP 默认使用 iasp91 模型,可以使用 `-mod` 选项设置其他 TauP 预定义速度模型: + +``` +$ taup time -mod prem -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP +$ taup time -mod ak135 -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP +``` + +TauP 默认台站位于地表,可使用 `--stadepth` 选项设置台站深度(单位为 km): + +``` +$ taup time -h 300 -deg 60 --stadepth 0.5 -ph P,S,PcP,ScS,PKiKP +``` + +若已知震源和台站位置,也可以使用 `-evt` 和 `-sta` 选项分别指定震源和台站的 +纬度和经度。例如,震源位于 (40 °N,10 °E),台站位于 (20 °S,10 °W): + +``` +$ taup time -h 300 -evt 40 10 -sta -20 -10 -ph P,S,PcP,ScS,PKiKP +``` + +:::{warning} +使用 `-evt` 和 `-sta` 选项时,`taup time` 会假设地球是完美球体, +来计算震源和台站的震中距,这会产生一定的误差。例如,根据以上参数 +`taup time` 计算得到的震中距约为 62.83°,P 波初至到时为 594.27 秒。 +而 ObsPy 的 +[gps2dist_azimuth](https://docs.obspy.org/packages/autogen/obspy.geodetics.base.gps2dist_azimuth.html#obspy.geodetics.base.gps2dist_azimuth) +函数计算得到的震中距约为 6959 km (采用 WGS84 椭球:赤道半径 6378.1370 km、 +扁率约为 0.0033528106647474805),在半径为 6371 km 的完美球状地球上约为 62.585° +(利用 [kilometers2degrees](https://docs.obspy.org/packages/autogen/obspy.geodetics.base.kilometers2degrees.html#obspy.geodetics.base.kilometers2degrees) +函数计算得到),使用 62.585° 直接计算的 P 波初至到时为 592.64 秒,二者相差 1.63 秒。 +::: + +在震中距比较小的情况下,可以使用 `-km` 选项指定震中距(单位为 km)。 +比如计算震源深度为 5 km,震中距 100 km 处,P、S、PcP、ScS、PKiKP 震相的走时信息: + +``` +$ taup time -h 5 -km 100 -ph P,S,PcP,ScS,PKiKP +``` + +## 输出格式 + +下面的命令计算了 PREM 模型下,震源深度 100 km,震中距 60° 处,P 和 pP 震相的走时信息。 +其输出为: + +``` +$ taup time -mod prem -h 100 -deg 60 -ph P,pP + +Model: prem +Distance Depth Phase Travel Ray Param Takeoff Incident Purist Purist + (deg) (km) Name Time (s) p (s/deg) (deg) (deg) Distance Name +----------------------------------------------------------------------------------- + 60.00 100.0 P 595.40 6.815 30.14 20.82 60.00 = P + 60.00 100.0 pP 618.89 6.890 149.49 21.06 60.00 = pP +``` + +输出共 9 列,从左到右分别为: + +1. 震中距(度):地震震中与台站的大圆弧路径长度 + +2. 震源深度(km) + +3. 震相名 + +4. 震相走时(秒) + +5. 射线参数(秒/度) + + :::{note} + 射线参数有三种常用单位:秒/度(s/deg )、秒/弧度(s/radian)、秒/千米(s/km)。 + 三者之间的关系为($R_0$ 为地球半径,假设为 6371 km): + + $$ + 1 s/deg = \frac{1}{\pi*R_0/180} s/km = 1/111.19492 s/km + $$ + + $$ + 1 s/deg = \frac{1}{\pi/180} s/radian = 57.29578 s/radian + $$ + ::: + +6. 出射角(度):即射线从震源出射时与**垂直向下**方向的夹角,取值范围为 0 到 180°。 + + - 0° 到 90° 表示射线向下出射(例如 P 震相) + - 90° 到 180° 表示射线向上出射(例如 pP 震相) + + :::{note} + 不同文章对出射角的定义不同,使用时应格外注意。 + + 老版本的 TauP 对出射角的定义不同,可视为 BUG,应避免使用老版本 TauP。 + ::: + +7. 入射角(度):射线入射到台站时与**垂直向上**方向的夹角。 + +8. Purist 距离:地震波实际走过的圆弧距离。 + + 该值可能与震中距不同,例如 50° 震中距处记录到的 PKKKP 震相,实际走过的 + 圆弧距离为 410°: + + ``` + $ taup time -deg 50 -ph PKKKP + + Model: iasp91 + Distance Depth Phase Travel Ray Param Takeoff Incident Purist Purist + (deg) (km) Name Time (s) p (s/deg) (deg) (deg) Distance Name + ----------------------------------------------------------------------------------- + 50.00 0.0 PKKKP 2519.56 2.242 6.72 6.72 410.00 = PKKKP + ``` + +9. Purist 震相名:地震波的“真实”震相名。 + + 例如,若想要计算 SS 震相在 660 km 不连续面的下表面的反射波走时,可指定其震相名为 + `S^660S`。由于 PREM 模型中 660 km 不连续面的“真实”深度为 670 km,此时 + TauP 实际返回的时从 670 km 处反射回的震相,此时 Purist 震相名会显示为 `S^670S`: + + ``` + $ taup time -mod prem -deg 120 -ph S^660S + + Model: prem + Distance Depth Phase Travel Ray Param Takeoff Incident Purist Purist + (deg) (km) Name Time (s) p (s/deg) (deg) (deg) Distance Name + ------------------------------------------------------------------------------------ + 120.00 0.0 S^660S 1975.75 12.336 20.79 20.79 120.00 * S^670S + ``` + +可以使用 `--rel` 选项输出相对于某个指定震相的走时差。例如, +下面的命令中,最后一列输出了所有震相相对于 PcP 震相的走时差: + +``` +$ taup time -mod prem -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP --rel PcP + +Model: prem +Distance Depth Phase Travel Ray Param Takeoff Incident Purist Purist Relative to + (deg) (km) Name Time (s) p (s/deg) (deg) (deg) Distance Name PcP +----------------------------------------------------------------------------------------------- + 60.00 300.0 P 574.72 6.739 33.65 20.58 60.00 = P -42.32 + 60.00 300.0 PcP 617.05 4.016 19.28 12.09 60.00 = PcP 0.00 + 60.00 300.0 PKiKP 993.45 1.245 5.88 3.72 60.00 = PKiKP 376.41 + 60.00 300.0 S 1043.98 12.659 34.16 21.37 60.00 = S 426.93 + 60.00 300.0 ScS 1134.89 7.480 19.38 12.43 60.00 = ScS 517.85 +``` + +## 信息提取 + +上面介绍的输出中包含了很多信息,想要在脚本中提取出想要的信息有些麻烦。所以 +`taup time` 提供了一些选项,使得在脚本中计算走时、射线参数更加方便。 + +### 走时 + +`--time` 选项使得输出中只包含走时信息,并且小数点的位数更多: + +``` +$ taup time -mod prem -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP --time +574.7245 617.047 993.4524 1043.9805 1134.8923 +``` + +需要注意的是,输出的走时不是按照 `-ph` 选项中震相的顺序进行排序的, +而是按照走时递增的顺序排序。比如这里,S 震相放在震相列表的第二位, +而 S 震相的走时 1043.9805 却放在第四位。 + +### 射线参数 + +`--rayp` 选项使得输出中只包含射线参数信息,并且小数点的位数更多: + +``` +$ taup time -mod prem -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP --rayp +6.739042 4.0158706 1.2450149 12.65922 7.480467 +``` + +此时,输出的射线参数是按照 `-ph` 选项中震相的顺序进行排序的。 + +:::{note} +`--rayp` 和 `--time` 选项不能一起使用。 +当两个选项同时使用时,会以后出现的选项为准。 +::: diff --git a/_sources/taup/taup_velplot.md b/_sources/taup/taup_velplot.md new file mode 100644 index 00000000..5751275f --- /dev/null +++ b/_sources/taup/taup_velplot.md @@ -0,0 +1,31 @@ +# taup velplot + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-06-02 + +--- + +`taup velplot` 可以很方便地生成用于绘制速度-深度剖面的 GMT 脚本。 + +使用 `taup velplot --help` 可查询该命令的完整用法和选项。此处仅介绍其常用用法。 + +生成 iasp91 参考模型的速度-深度剖面绘图脚本: + +``` +$ taup velplot -mod iasp91 +``` + +执行以上命令生成的脚本 {file}`iasp91_vel.gmt`,生成 PDF 格式的速度-深度剖面: + +``` +$ bash iasp91_vel.gmt +``` + +绘制出来的图件效果如下(蓝线为 P 波速度,红线为 S 波速度): + +```{figure} taup_velplot.jpg +:align: center +:width: 400 px + +`taup velplot` 绘制速度-深度剖面 +``` diff --git a/_sources/taup/taup_wavefront.md b/_sources/taup/taup_wavefront.md new file mode 100644 index 00000000..a83a19bd --- /dev/null +++ b/_sources/taup/taup_wavefront.md @@ -0,0 +1,128 @@ +# taup wavefront + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-06-05 + +--- + +`taup wavefront` 命令可用于生成波前面,即任意时刻地震波在地球内部的波场快照。 + +## 基本用法 + +使用 `taup wavefront --help` 可查询该命令的完整用法和选项。其选项与 +{doc}`taup_time` 几乎完全相同,故不再重复介绍。此处仅介绍常用用法。 + +计算震源深度为 300 km,震中距 60° 处,P 震相的波前面: + +``` +$ taup wavefront -ph P -deg 60 -h 300 +``` + +该命令会生成文件 {file}`taup_wavefront.gmt`,其包含了不同时刻(t=100, 200, 300, ...)的 +P 波的波前面信息,内容如下: + +``` +> P at 100.0 seconds +5.31 5151.8 100.00 254.331 +5.42 5158.7 100.00 260.031 +5.49 5163.9 100.00 264.250 +5.55 5167.7 100.00 267.326 +...(省略若干行) +> P at 200.0 seconds +15.69 4244.7 200.00 254.331 +15.93 4267.0 200.00 260.031 +16.10 4283.9 200.00 264.250 +16.23 4296.4 200.00 267.326 +...(省略若干行) +``` + +该文件包含四列,分别是:震中距(度)、深度(km)、走时(秒)、射线参数(秒/度)。可以直接使用文件的前两列进行绘图。 + +加上 `--gmt` 选项,则会生成一个绘制波前面的 GMT 脚本 {file}`taup_wavefront.gmt`: + +``` +$ taup wavefront -ph P -deg 60 -h 300 --gmt +``` + +使用如下命令执行该绘图脚本,即可得到 PDF 格式的波前面传播图: + +``` +$ bash taup_wavefront.gmt +``` + +绘制出来的图件效果如下: + +```{figure} taup_wavefront.jpg +:align: center +:width: 500 px + +`taup wavefront` 绘制波前面 +``` + +## 进阶用法 + +`taup wavefront` 提供的 `--rays` 选项可以进一步控制生成波前面时所使用的射线数目 +(即每个波前面用多少个点约束),而 `--timestep` 选项可以控制波前面的时间步长 +(即间隔多长时间产生一个波前面)。 + +以下示例中,每个波前面用 20 条射线计算,且每 25 秒计算一个波前面: + +``` +$ taup wavefront -ph P -deg 60 -h 300 --rays 20 --timestep 25 --gmt +$ bash taup_wavefront.gmt +``` + +绘制出来的图件效果如下: + +```{figure} taup_wavefront_ray20-time25.jpg +:align: center +:width: 500 px + +`taup wavefront` 绘制波前面 +``` + +## 波场动画 + +`taup wavefront` 提供的 `--timefiles` 选项可以将每个时刻的波前面信息输出到 +不同的文件中。有了每个时刻的波场信息,就可以制作波场动画了。 + +以下命令会生成几十个文件,每个文件包含一个波前面信息: + +``` +$ taup wavefront -ph P -deg 60 -h 300 --timestep 10 --timefiles +``` + +例如,{file}`taup_wavefront_025.gmt` 包含了第 25 秒时的波前面信息。 +这些文件可用于制图,并进一步生成动画。 + +将 `--timefiles` 选项与 `--gmt` 选项连用,则会对每个波前面生成一个单独的 GMT 绘图脚本: + +``` +$ taup wavefront -ph P -deg 60 -h 300 --timestep 10 --timefiles --gmt +``` + +以上命令会生成几十个 GMT 脚本。使用如下命令可以批量执行所有 GMT 脚本,生成多个 PDF 文件: + +``` +$ for i in $(ls taup_wavefront_*.gmt); do bash $i; done +``` + +使用 [GraphicsMagick](http://www.graphicsmagick.org/) 的 +[gm convert](http://www.graphicsmagick.org/convert.html) 命令 +可以将多个 PDF 文件转换为 GIF 动画: + +``` +$ gm convert -delay 10 -density 150x150 taup_wavefront_*.pdf taup_wavefront.gif +``` + +其中,`-delay 10` 表示每两张图的间隔是 10/100 秒,`-density 150x150` 设置动画的水平和 +垂直方向的像素点数。 + +生成的动画如下图所示: + +```{figure} taup_wavefront.gif +:align: center +:width: 500 px + +`taup wavefront` 绘制波场传播动画 +``` diff --git a/_sources/template/index.md b/_sources/template/index.md new file mode 100644 index 00000000..242bba27 --- /dev/null +++ b/_sources/template/index.md @@ -0,0 +1,17 @@ +# 教程模板 + +- 软件名称: Template +- 作者: [seismo-learn](https://seismo-learn.org) +- 主页: +- 官方文档: +- 源码地址: +- 最新版本: v1.0.0 (2021-01-02) +- 适用平台: {{Linux}} {{macOS}} {{Windows}} +- 编程语言: Python、C +- 许可协议: GPL、LGPL、MIT、未知 + +--- + +:::{note} +本教程仅在 Linux 和 macOS 系统下使用 v1.0.0 测试通过,其余版本或系统可能有所差异。 +::: \ No newline at end of file diff --git a/_sources/template/install.md b/_sources/template/install.md new file mode 100644 index 00000000..1ee59297 --- /dev/null +++ b/_sources/template/install.md @@ -0,0 +1,18 @@ +# 安装 + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-01-02 + +--- + +{{ install_notes }} + +这一节将介绍如何在 Linux 和 macOS 上安装 XXX 软件。 + +1. 安装依赖包 +2. 下载源码 +3. 解压 +4. 编译 +5. 安装 +6. 修改环境变量 +7. 执行 XXX 命令测试 diff --git a/_sources/template/intro.md b/_sources/template/intro.md new file mode 100644 index 00000000..f35cc38d --- /dev/null +++ b/_sources/template/intro.md @@ -0,0 +1,26 @@ +# 简介 + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-01-02 + +--- + +本文档是**地震“学”软件**的教程模板。该模板规定了软件教程中所需包含的内容, +以及内容的具体格式和风格。 + +## 使用说明 + +若想要为一个软件写教程,可直接复制本模板文件夹(位于 {file}`/source/template` 目录) +的全部内容,重命名,并更新软件的基本信息。 + +## 引用 + +有引用文献的软件应列出其引用文献。 +建议访问 网站,通过标题、DOI 或网址搜索相关文献, +然后选择 **American Geophysical Union** 风格,导出到剪贴板。 +例如: + +- Crotwell, H. P., Owens, T. J., & Ritsema, J. (1999). + The TauP Toolkit: Flexible Seismic Travel-time and Ray-path Utilities. + *Seismological Research Letters*, 70(2), 154–160. + diff --git a/_sources/template/style.md b/_sources/template/style.md new file mode 100644 index 00000000..1ec5c019 --- /dev/null +++ b/_sources/template/style.md @@ -0,0 +1,19 @@ +# 风格指南 + +- 本节贡献者: {{ 田冬冬 }}(作者)、{{ 姚家园 }}(审稿) +- 最近更新日期: 2021-02-06 + +--- + +1. 为每个软件创建单独的文件夹 + +2. 每个软件的教程应包括如下内容: + + - `index.md`:软件教程首页,列举软件的基本信息 + - `intro.md`:介绍软件的主要用途、功能、特色、缺点、相关文献及引用方式 + - `install.md`:软件安装说明 + - 其它可选教程 + - 使用说明 + - 实战练习 + +3. 其他规则请参考[《地震“学”贡献指南》](https://seismo-learn.org/contributing/) diff --git a/_sources/utilities/distaz.md b/_sources/utilities/distaz.md new file mode 100644 index 00000000..a42f9d6b --- /dev/null +++ b/_sources/utilities/distaz.md @@ -0,0 +1,64 @@ +# distaz + +- 本节贡献者: {{田冬冬}}(作者)、{{姚家园}}(审稿) +- 最近更新时间: 2021-01-12 + +--- + +{{ install_notes }} + +`distaz` 是一个可以用于计算球面上任意两点间球面距离、方位角和反方位角的小工具。 + +## 相关代码 + +`distaz` 代码很短,简单易懂,其采用的地球模型为椭球模型,精度上可以满足需求。 + +- C、Fortran、Java、Python 以及 CGI 版本: [由 USC 的一个小组整理](http://www.seis.sc.edu/software/distaz/) +- Matlab 版本: [由 specfem3d_globe 提供](https://github.com/geodynamics/specfem3d_globe/blob/master/utils/Visualization/VTK_ParaView/matlab/distaz.m) + +## 使用方法 + +仅以 C 语言版本的 `distaz` 为例,用如下命令即可编译: + +``` +$ cc distaz.c -o distaz -lm +``` + +并将生成的可执行文件移动到 {file}`~/bin/` 目录下: + +``` +$ mkdir -p ~/bin/ +$ mv distaz ~/bin/ +``` + +若 {file}`~/bin/` 路径尚未添加到环境变量 **PATH** 中,则执行如下命令: + +``` +$ echo 'export PATH=${HOME}/bin:${PATH}' >> ~/.bashrc +$ source ~/.bashrc +``` + +其输入为台站纬度、台站经度、事件纬度、事件经度: + +``` +sta_lat sta_lon evt_lat evt_lon +``` + +输出为震中距(单位为°)、反方位角和方位角: + +``` +Delta Baz Az +``` + +例如,台站位于(10°S,14°E),地震位于(40°N,50°W): + +``` +$ distaz -10 14 40 -50 +77.218 314.930 114.795 +``` + +:::{note} +C 语言版的 `distaz` 默认输出小数点后 3 位。可以将源码 {file}`distaz.c` 中 +`printf("%6.3f %6.3f %6.3f\n", delta, baz, az);` 的 `%6.3f` 修改为 +更高精度的输出格式(例如 `%8.5f`)以达到所需的精度。 +::: diff --git a/_sources/utilities/saclst.md b/_sources/utilities/saclst.md new file mode 100644 index 00000000..b548e6a5 --- /dev/null +++ b/_sources/utilities/saclst.md @@ -0,0 +1,51 @@ +# saclst + +- 本节贡献者: {{田冬冬}}(作者)、{{姚家园}}(审稿) +- 最近更新时间: 2021-01-09 + +--- + +`saclst` 是 SAC 软件自带的一个常用工具,用于列出头段变量的值。 + +使用 `saclst help` 可查询该命令的完整用法和选项。终端只键入 `saclst` +可查询简单用法,其语法很简单: + +``` +$ saclst header_lists f file_lists +``` + +- `header_lists`:要查看的头段变量名列表 +- `f`:关键字,表明接下来的所有参数都是 SAC 文件 +- `file_lists`:SAC 文件列表 + +:::{note} +使用 `saclst` 时,SAC 头段变量名并不区分大小写,除了头段变量 `F` 以外。 +`F` 用于存储事件的结束时刻相对于参考时刻的秒数,为了与关键字 `f` 区分, +使用 `saclst` 查看其值时,必须使用大写。 +::: + +查看单个文件的单个头段: + +``` +$ saclst npts f seis.SAC +seis.sac 1000 +``` + +查看单个文件的多个头段: + +``` +$ saclst npts delta F f seis.SAC +seis.sac 1000 0.025 10.233 +``` + +查看多个文件的多个头段: + +``` +$ saclst stla stlo evla evlo gcarc f N.*.U +N.AAKH.U 36.3726 137.92 -5.514 151.161 43.4752 +N.ABNH.U 34.6326 137.231 -5.514 151.161 42.0392 +N.AC2H.U 35.4786 137.735 -5.514 151.161 42.6857 +N.AGMH.U 35.787 137.717 -5.514 151.161 42.9798 +N.AGWH.U 43.0842 140.82 -5.514 151.161 49.2714 +N.AHIH.U 38.2799 139.549 -5.514 151.161 44.8874 +``` diff --git a/_sphinx_design_static/design-tabs.js b/_sphinx_design_static/design-tabs.js new file mode 100644 index 00000000..b25bd6a4 --- /dev/null +++ b/_sphinx_design_static/design-tabs.js @@ -0,0 +1,101 @@ +// @ts-check + +// Extra JS capability for selected tabs to be synced +// The selection is stored in local storage so that it persists across page loads. + +/** + * @type {Record} + */ +let sd_id_to_elements = {}; +const storageKeyPrefix = "sphinx-design-tab-id-"; + +/** + * Create a key for a tab element. + * @param {HTMLElement} el - The tab element. + * @returns {[string, string, string] | null} - The key. + * + */ +function create_key(el) { + let syncId = el.getAttribute("data-sync-id"); + let syncGroup = el.getAttribute("data-sync-group"); + if (!syncId || !syncGroup) return null; + return [syncGroup, syncId, syncGroup + "--" + syncId]; +} + +/** + * Initialize the tab selection. + * + */ +function ready() { + // Find all tabs with sync data + + /** @type {string[]} */ + let groups = []; + + document.querySelectorAll(".sd-tab-label").forEach((label) => { + if (label instanceof HTMLElement) { + let data = create_key(label); + if (data) { + let [group, id, key] = data; + + // add click event listener + // @ts-ignore + label.onclick = onSDLabelClick; + + // store map of key to elements + if (!sd_id_to_elements[key]) { + sd_id_to_elements[key] = []; + } + sd_id_to_elements[key].push(label); + + if (groups.indexOf(group) === -1) { + groups.push(group); + // Check if a specific tab has been selected via URL parameter + const tabParam = new URLSearchParams(window.location.search).get( + group + ); + if (tabParam) { + console.log( + "sphinx-design: Selecting tab id for group '" + + group + + "' from URL parameter: " + + tabParam + ); + window.sessionStorage.setItem(storageKeyPrefix + group, tabParam); + } + } + + // Check is a specific tab has been selected previously + let previousId = window.sessionStorage.getItem( + storageKeyPrefix + group + ); + if (previousId === id) { + // console.log( + // "sphinx-design: Selecting tab from session storage: " + id + // ); + // @ts-ignore + label.previousElementSibling.checked = true; + } + } + } + }); +} + +/** + * Activate other tabs with the same sync id. + * + * @this {HTMLElement} - The element that was clicked. + */ +function onSDLabelClick() { + let data = create_key(this); + if (!data) return; + let [group, id, key] = data; + for (const label of sd_id_to_elements[key]) { + if (label === this) continue; + // @ts-ignore + label.previousElementSibling.checked = true; + } + window.sessionStorage.setItem(storageKeyPrefix + group, id); +} + +document.addEventListener("DOMContentLoaded", ready, false); diff --git a/_sphinx_design_static/sphinx-design.min.css b/_sphinx_design_static/sphinx-design.min.css new file mode 100644 index 00000000..860c36da --- /dev/null +++ b/_sphinx_design_static/sphinx-design.min.css @@ -0,0 +1 @@ +.sd-bg-primary{background-color:var(--sd-color-primary) !important}.sd-bg-text-primary{color:var(--sd-color-primary-text) !important}button.sd-bg-primary:focus,button.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}a.sd-bg-primary:focus,a.sd-bg-primary:hover{background-color:var(--sd-color-primary-highlight) !important}.sd-bg-secondary{background-color:var(--sd-color-secondary) !important}.sd-bg-text-secondary{color:var(--sd-color-secondary-text) !important}button.sd-bg-secondary:focus,button.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}a.sd-bg-secondary:focus,a.sd-bg-secondary:hover{background-color:var(--sd-color-secondary-highlight) !important}.sd-bg-success{background-color:var(--sd-color-success) !important}.sd-bg-text-success{color:var(--sd-color-success-text) !important}button.sd-bg-success:focus,button.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}a.sd-bg-success:focus,a.sd-bg-success:hover{background-color:var(--sd-color-success-highlight) !important}.sd-bg-info{background-color:var(--sd-color-info) !important}.sd-bg-text-info{color:var(--sd-color-info-text) !important}button.sd-bg-info:focus,button.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}a.sd-bg-info:focus,a.sd-bg-info:hover{background-color:var(--sd-color-info-highlight) !important}.sd-bg-warning{background-color:var(--sd-color-warning) !important}.sd-bg-text-warning{color:var(--sd-color-warning-text) !important}button.sd-bg-warning:focus,button.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}a.sd-bg-warning:focus,a.sd-bg-warning:hover{background-color:var(--sd-color-warning-highlight) !important}.sd-bg-danger{background-color:var(--sd-color-danger) !important}.sd-bg-text-danger{color:var(--sd-color-danger-text) !important}button.sd-bg-danger:focus,button.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}a.sd-bg-danger:focus,a.sd-bg-danger:hover{background-color:var(--sd-color-danger-highlight) !important}.sd-bg-light{background-color:var(--sd-color-light) !important}.sd-bg-text-light{color:var(--sd-color-light-text) !important}button.sd-bg-light:focus,button.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}a.sd-bg-light:focus,a.sd-bg-light:hover{background-color:var(--sd-color-light-highlight) !important}.sd-bg-muted{background-color:var(--sd-color-muted) !important}.sd-bg-text-muted{color:var(--sd-color-muted-text) !important}button.sd-bg-muted:focus,button.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}a.sd-bg-muted:focus,a.sd-bg-muted:hover{background-color:var(--sd-color-muted-highlight) !important}.sd-bg-dark{background-color:var(--sd-color-dark) !important}.sd-bg-text-dark{color:var(--sd-color-dark-text) !important}button.sd-bg-dark:focus,button.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}a.sd-bg-dark:focus,a.sd-bg-dark:hover{background-color:var(--sd-color-dark-highlight) !important}.sd-bg-black{background-color:var(--sd-color-black) !important}.sd-bg-text-black{color:var(--sd-color-black-text) !important}button.sd-bg-black:focus,button.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}a.sd-bg-black:focus,a.sd-bg-black:hover{background-color:var(--sd-color-black-highlight) !important}.sd-bg-white{background-color:var(--sd-color-white) !important}.sd-bg-text-white{color:var(--sd-color-white-text) !important}button.sd-bg-white:focus,button.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}a.sd-bg-white:focus,a.sd-bg-white:hover{background-color:var(--sd-color-white-highlight) !important}.sd-text-primary,.sd-text-primary>p{color:var(--sd-color-primary) !important}a.sd-text-primary:focus,a.sd-text-primary:hover{color:var(--sd-color-primary-highlight) !important}.sd-text-secondary,.sd-text-secondary>p{color:var(--sd-color-secondary) !important}a.sd-text-secondary:focus,a.sd-text-secondary:hover{color:var(--sd-color-secondary-highlight) !important}.sd-text-success,.sd-text-success>p{color:var(--sd-color-success) !important}a.sd-text-success:focus,a.sd-text-success:hover{color:var(--sd-color-success-highlight) !important}.sd-text-info,.sd-text-info>p{color:var(--sd-color-info) !important}a.sd-text-info:focus,a.sd-text-info:hover{color:var(--sd-color-info-highlight) !important}.sd-text-warning,.sd-text-warning>p{color:var(--sd-color-warning) !important}a.sd-text-warning:focus,a.sd-text-warning:hover{color:var(--sd-color-warning-highlight) !important}.sd-text-danger,.sd-text-danger>p{color:var(--sd-color-danger) !important}a.sd-text-danger:focus,a.sd-text-danger:hover{color:var(--sd-color-danger-highlight) !important}.sd-text-light,.sd-text-light>p{color:var(--sd-color-light) !important}a.sd-text-light:focus,a.sd-text-light:hover{color:var(--sd-color-light-highlight) !important}.sd-text-muted,.sd-text-muted>p{color:var(--sd-color-muted) !important}a.sd-text-muted:focus,a.sd-text-muted:hover{color:var(--sd-color-muted-highlight) !important}.sd-text-dark,.sd-text-dark>p{color:var(--sd-color-dark) !important}a.sd-text-dark:focus,a.sd-text-dark:hover{color:var(--sd-color-dark-highlight) !important}.sd-text-black,.sd-text-black>p{color:var(--sd-color-black) !important}a.sd-text-black:focus,a.sd-text-black:hover{color:var(--sd-color-black-highlight) !important}.sd-text-white,.sd-text-white>p{color:var(--sd-color-white) !important}a.sd-text-white:focus,a.sd-text-white:hover{color:var(--sd-color-white-highlight) !important}.sd-outline-primary{border-color:var(--sd-color-primary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-primary:focus,a.sd-outline-primary:hover{border-color:var(--sd-color-primary-highlight) !important}.sd-outline-secondary{border-color:var(--sd-color-secondary) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-secondary:focus,a.sd-outline-secondary:hover{border-color:var(--sd-color-secondary-highlight) !important}.sd-outline-success{border-color:var(--sd-color-success) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-success:focus,a.sd-outline-success:hover{border-color:var(--sd-color-success-highlight) !important}.sd-outline-info{border-color:var(--sd-color-info) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-info:focus,a.sd-outline-info:hover{border-color:var(--sd-color-info-highlight) !important}.sd-outline-warning{border-color:var(--sd-color-warning) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-warning:focus,a.sd-outline-warning:hover{border-color:var(--sd-color-warning-highlight) !important}.sd-outline-danger{border-color:var(--sd-color-danger) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-danger:focus,a.sd-outline-danger:hover{border-color:var(--sd-color-danger-highlight) !important}.sd-outline-light{border-color:var(--sd-color-light) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-light:focus,a.sd-outline-light:hover{border-color:var(--sd-color-light-highlight) !important}.sd-outline-muted{border-color:var(--sd-color-muted) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-muted:focus,a.sd-outline-muted:hover{border-color:var(--sd-color-muted-highlight) !important}.sd-outline-dark{border-color:var(--sd-color-dark) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-dark:focus,a.sd-outline-dark:hover{border-color:var(--sd-color-dark-highlight) !important}.sd-outline-black{border-color:var(--sd-color-black) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-black:focus,a.sd-outline-black:hover{border-color:var(--sd-color-black-highlight) !important}.sd-outline-white{border-color:var(--sd-color-white) !important;border-style:solid !important;border-width:1px !important}a.sd-outline-white:focus,a.sd-outline-white:hover{border-color:var(--sd-color-white-highlight) !important}.sd-bg-transparent{background-color:transparent !important}.sd-outline-transparent{border-color:transparent !important}.sd-text-transparent{color:transparent !important}.sd-p-0{padding:0 !important}.sd-pt-0,.sd-py-0{padding-top:0 !important}.sd-pr-0,.sd-px-0{padding-right:0 !important}.sd-pb-0,.sd-py-0{padding-bottom:0 !important}.sd-pl-0,.sd-px-0{padding-left:0 !important}.sd-p-1{padding:.25rem !important}.sd-pt-1,.sd-py-1{padding-top:.25rem !important}.sd-pr-1,.sd-px-1{padding-right:.25rem !important}.sd-pb-1,.sd-py-1{padding-bottom:.25rem !important}.sd-pl-1,.sd-px-1{padding-left:.25rem !important}.sd-p-2{padding:.5rem !important}.sd-pt-2,.sd-py-2{padding-top:.5rem !important}.sd-pr-2,.sd-px-2{padding-right:.5rem !important}.sd-pb-2,.sd-py-2{padding-bottom:.5rem !important}.sd-pl-2,.sd-px-2{padding-left:.5rem !important}.sd-p-3{padding:1rem !important}.sd-pt-3,.sd-py-3{padding-top:1rem !important}.sd-pr-3,.sd-px-3{padding-right:1rem !important}.sd-pb-3,.sd-py-3{padding-bottom:1rem !important}.sd-pl-3,.sd-px-3{padding-left:1rem !important}.sd-p-4{padding:1.5rem !important}.sd-pt-4,.sd-py-4{padding-top:1.5rem !important}.sd-pr-4,.sd-px-4{padding-right:1.5rem !important}.sd-pb-4,.sd-py-4{padding-bottom:1.5rem !important}.sd-pl-4,.sd-px-4{padding-left:1.5rem !important}.sd-p-5{padding:3rem !important}.sd-pt-5,.sd-py-5{padding-top:3rem !important}.sd-pr-5,.sd-px-5{padding-right:3rem !important}.sd-pb-5,.sd-py-5{padding-bottom:3rem !important}.sd-pl-5,.sd-px-5{padding-left:3rem !important}.sd-m-auto{margin:auto !important}.sd-mt-auto,.sd-my-auto{margin-top:auto !important}.sd-mr-auto,.sd-mx-auto{margin-right:auto !important}.sd-mb-auto,.sd-my-auto{margin-bottom:auto !important}.sd-ml-auto,.sd-mx-auto{margin-left:auto !important}.sd-m-0{margin:0 !important}.sd-mt-0,.sd-my-0{margin-top:0 !important}.sd-mr-0,.sd-mx-0{margin-right:0 !important}.sd-mb-0,.sd-my-0{margin-bottom:0 !important}.sd-ml-0,.sd-mx-0{margin-left:0 !important}.sd-m-1{margin:.25rem !important}.sd-mt-1,.sd-my-1{margin-top:.25rem !important}.sd-mr-1,.sd-mx-1{margin-right:.25rem !important}.sd-mb-1,.sd-my-1{margin-bottom:.25rem !important}.sd-ml-1,.sd-mx-1{margin-left:.25rem !important}.sd-m-2{margin:.5rem !important}.sd-mt-2,.sd-my-2{margin-top:.5rem !important}.sd-mr-2,.sd-mx-2{margin-right:.5rem !important}.sd-mb-2,.sd-my-2{margin-bottom:.5rem !important}.sd-ml-2,.sd-mx-2{margin-left:.5rem !important}.sd-m-3{margin:1rem !important}.sd-mt-3,.sd-my-3{margin-top:1rem !important}.sd-mr-3,.sd-mx-3{margin-right:1rem !important}.sd-mb-3,.sd-my-3{margin-bottom:1rem !important}.sd-ml-3,.sd-mx-3{margin-left:1rem !important}.sd-m-4{margin:1.5rem !important}.sd-mt-4,.sd-my-4{margin-top:1.5rem !important}.sd-mr-4,.sd-mx-4{margin-right:1.5rem !important}.sd-mb-4,.sd-my-4{margin-bottom:1.5rem !important}.sd-ml-4,.sd-mx-4{margin-left:1.5rem !important}.sd-m-5{margin:3rem !important}.sd-mt-5,.sd-my-5{margin-top:3rem !important}.sd-mr-5,.sd-mx-5{margin-right:3rem !important}.sd-mb-5,.sd-my-5{margin-bottom:3rem !important}.sd-ml-5,.sd-mx-5{margin-left:3rem !important}.sd-w-25{width:25% !important}.sd-w-50{width:50% !important}.sd-w-75{width:75% !important}.sd-w-100{width:100% !important}.sd-w-auto{width:auto !important}.sd-h-25{height:25% !important}.sd-h-50{height:50% !important}.sd-h-75{height:75% !important}.sd-h-100{height:100% !important}.sd-h-auto{height:auto !important}.sd-d-none{display:none !important}.sd-d-inline{display:inline !important}.sd-d-inline-block{display:inline-block !important}.sd-d-block{display:block !important}.sd-d-grid{display:grid !important}.sd-d-flex-row{display:-ms-flexbox !important;display:flex !important;flex-direction:row !important}.sd-d-flex-column{display:-ms-flexbox !important;display:flex !important;flex-direction:column !important}.sd-d-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}@media(min-width: 576px){.sd-d-sm-none{display:none !important}.sd-d-sm-inline{display:inline !important}.sd-d-sm-inline-block{display:inline-block !important}.sd-d-sm-block{display:block !important}.sd-d-sm-grid{display:grid !important}.sd-d-sm-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-sm-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 768px){.sd-d-md-none{display:none !important}.sd-d-md-inline{display:inline !important}.sd-d-md-inline-block{display:inline-block !important}.sd-d-md-block{display:block !important}.sd-d-md-grid{display:grid !important}.sd-d-md-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-md-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 992px){.sd-d-lg-none{display:none !important}.sd-d-lg-inline{display:inline !important}.sd-d-lg-inline-block{display:inline-block !important}.sd-d-lg-block{display:block !important}.sd-d-lg-grid{display:grid !important}.sd-d-lg-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-lg-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}@media(min-width: 1200px){.sd-d-xl-none{display:none !important}.sd-d-xl-inline{display:inline !important}.sd-d-xl-inline-block{display:inline-block !important}.sd-d-xl-block{display:block !important}.sd-d-xl-grid{display:grid !important}.sd-d-xl-flex{display:-ms-flexbox !important;display:flex !important}.sd-d-xl-inline-flex{display:-ms-inline-flexbox !important;display:inline-flex !important}}.sd-align-major-start{justify-content:flex-start !important}.sd-align-major-end{justify-content:flex-end !important}.sd-align-major-center{justify-content:center !important}.sd-align-major-justify{justify-content:space-between !important}.sd-align-major-spaced{justify-content:space-evenly !important}.sd-align-minor-start{align-items:flex-start !important}.sd-align-minor-end{align-items:flex-end !important}.sd-align-minor-center{align-items:center !important}.sd-align-minor-stretch{align-items:stretch !important}.sd-text-justify{text-align:justify !important}.sd-text-left{text-align:left !important}.sd-text-right{text-align:right !important}.sd-text-center{text-align:center !important}.sd-font-weight-light{font-weight:300 !important}.sd-font-weight-lighter{font-weight:lighter !important}.sd-font-weight-normal{font-weight:400 !important}.sd-font-weight-bold{font-weight:700 !important}.sd-font-weight-bolder{font-weight:bolder !important}.sd-font-italic{font-style:italic !important}.sd-text-decoration-none{text-decoration:none !important}.sd-text-lowercase{text-transform:lowercase !important}.sd-text-uppercase{text-transform:uppercase !important}.sd-text-capitalize{text-transform:capitalize !important}.sd-text-wrap{white-space:normal !important}.sd-text-nowrap{white-space:nowrap !important}.sd-text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-fs-1,.sd-fs-1>p{font-size:calc(1.375rem + 1.5vw) !important;line-height:unset !important}.sd-fs-2,.sd-fs-2>p{font-size:calc(1.325rem + 0.9vw) !important;line-height:unset !important}.sd-fs-3,.sd-fs-3>p{font-size:calc(1.3rem + 0.6vw) !important;line-height:unset !important}.sd-fs-4,.sd-fs-4>p{font-size:calc(1.275rem + 0.3vw) !important;line-height:unset !important}.sd-fs-5,.sd-fs-5>p{font-size:1.25rem !important;line-height:unset !important}.sd-fs-6,.sd-fs-6>p{font-size:1rem !important;line-height:unset !important}.sd-border-0{border:0 solid !important}.sd-border-top-0{border-top:0 solid !important}.sd-border-bottom-0{border-bottom:0 solid !important}.sd-border-right-0{border-right:0 solid !important}.sd-border-left-0{border-left:0 solid !important}.sd-border-1{border:1px solid !important}.sd-border-top-1{border-top:1px solid !important}.sd-border-bottom-1{border-bottom:1px solid !important}.sd-border-right-1{border-right:1px solid !important}.sd-border-left-1{border-left:1px solid !important}.sd-border-2{border:2px solid !important}.sd-border-top-2{border-top:2px solid !important}.sd-border-bottom-2{border-bottom:2px solid !important}.sd-border-right-2{border-right:2px solid !important}.sd-border-left-2{border-left:2px solid !important}.sd-border-3{border:3px solid !important}.sd-border-top-3{border-top:3px solid !important}.sd-border-bottom-3{border-bottom:3px solid !important}.sd-border-right-3{border-right:3px solid !important}.sd-border-left-3{border-left:3px solid !important}.sd-border-4{border:4px solid !important}.sd-border-top-4{border-top:4px solid !important}.sd-border-bottom-4{border-bottom:4px solid !important}.sd-border-right-4{border-right:4px solid !important}.sd-border-left-4{border-left:4px solid !important}.sd-border-5{border:5px solid !important}.sd-border-top-5{border-top:5px solid !important}.sd-border-bottom-5{border-bottom:5px solid !important}.sd-border-right-5{border-right:5px solid !important}.sd-border-left-5{border-left:5px solid !important}.sd-rounded-0{border-radius:0 !important}.sd-rounded-1{border-radius:.2rem !important}.sd-rounded-2{border-radius:.3rem !important}.sd-rounded-3{border-radius:.5rem !important}.sd-rounded-pill{border-radius:50rem !important}.sd-rounded-circle{border-radius:50% !important}.shadow-none{box-shadow:none !important}.sd-shadow-sm{box-shadow:0 .125rem .25rem var(--sd-color-shadow) !important}.sd-shadow-md{box-shadow:0 .5rem 1rem var(--sd-color-shadow) !important}.sd-shadow-lg{box-shadow:0 1rem 3rem var(--sd-color-shadow) !important}@keyframes sd-slide-from-left{0%{transform:translateX(-100%)}100%{transform:translateX(0)}}@keyframes sd-slide-from-right{0%{transform:translateX(200%)}100%{transform:translateX(0)}}@keyframes sd-grow100{0%{transform:scale(0);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50{0%{transform:scale(0.5);opacity:.5}100%{transform:scale(1);opacity:1}}@keyframes sd-grow50-rot20{0%{transform:scale(0.5) rotateZ(-20deg);opacity:.5}75%{transform:scale(1) rotateZ(5deg);opacity:1}95%{transform:scale(1) rotateZ(-1deg);opacity:1}100%{transform:scale(1) rotateZ(0);opacity:1}}.sd-animate-slide-from-left{animation:1s ease-out 0s 1 normal none running sd-slide-from-left}.sd-animate-slide-from-right{animation:1s ease-out 0s 1 normal none running sd-slide-from-right}.sd-animate-grow100{animation:1s ease-out 0s 1 normal none running sd-grow100}.sd-animate-grow50{animation:1s ease-out 0s 1 normal none running sd-grow50}.sd-animate-grow50-rot20{animation:1s ease-out 0s 1 normal none running sd-grow50-rot20}.sd-badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.sd-badge:empty{display:none}a.sd-badge{text-decoration:none}.sd-btn .sd-badge{position:relative;top:-1px}.sd-btn{background-color:transparent;border:1px solid transparent;border-radius:.25rem;cursor:pointer;display:inline-block;font-weight:400;font-size:1rem;line-height:1.5;padding:.375rem .75rem;text-align:center;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;vertical-align:middle;user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none}.sd-btn:hover{text-decoration:none}@media(prefers-reduced-motion: reduce){.sd-btn{transition:none}}.sd-btn-primary,.sd-btn-outline-primary:hover,.sd-btn-outline-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-primary:hover,.sd-btn-primary:focus{color:var(--sd-color-primary-text) !important;background-color:var(--sd-color-primary-highlight) !important;border-color:var(--sd-color-primary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-primary{color:var(--sd-color-primary) !important;border-color:var(--sd-color-primary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary,.sd-btn-outline-secondary:hover,.sd-btn-outline-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-secondary:hover,.sd-btn-secondary:focus{color:var(--sd-color-secondary-text) !important;background-color:var(--sd-color-secondary-highlight) !important;border-color:var(--sd-color-secondary-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-secondary{color:var(--sd-color-secondary) !important;border-color:var(--sd-color-secondary) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success,.sd-btn-outline-success:hover,.sd-btn-outline-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-success:hover,.sd-btn-success:focus{color:var(--sd-color-success-text) !important;background-color:var(--sd-color-success-highlight) !important;border-color:var(--sd-color-success-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-success{color:var(--sd-color-success) !important;border-color:var(--sd-color-success) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info,.sd-btn-outline-info:hover,.sd-btn-outline-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-info:hover,.sd-btn-info:focus{color:var(--sd-color-info-text) !important;background-color:var(--sd-color-info-highlight) !important;border-color:var(--sd-color-info-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-info{color:var(--sd-color-info) !important;border-color:var(--sd-color-info) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning,.sd-btn-outline-warning:hover,.sd-btn-outline-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-warning:hover,.sd-btn-warning:focus{color:var(--sd-color-warning-text) !important;background-color:var(--sd-color-warning-highlight) !important;border-color:var(--sd-color-warning-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-warning{color:var(--sd-color-warning) !important;border-color:var(--sd-color-warning) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger,.sd-btn-outline-danger:hover,.sd-btn-outline-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-danger:hover,.sd-btn-danger:focus{color:var(--sd-color-danger-text) !important;background-color:var(--sd-color-danger-highlight) !important;border-color:var(--sd-color-danger-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-danger{color:var(--sd-color-danger) !important;border-color:var(--sd-color-danger) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light,.sd-btn-outline-light:hover,.sd-btn-outline-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-light:hover,.sd-btn-light:focus{color:var(--sd-color-light-text) !important;background-color:var(--sd-color-light-highlight) !important;border-color:var(--sd-color-light-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-light{color:var(--sd-color-light) !important;border-color:var(--sd-color-light) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted,.sd-btn-outline-muted:hover,.sd-btn-outline-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-muted:hover,.sd-btn-muted:focus{color:var(--sd-color-muted-text) !important;background-color:var(--sd-color-muted-highlight) !important;border-color:var(--sd-color-muted-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-muted{color:var(--sd-color-muted) !important;border-color:var(--sd-color-muted) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark,.sd-btn-outline-dark:hover,.sd-btn-outline-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-dark:hover,.sd-btn-dark:focus{color:var(--sd-color-dark-text) !important;background-color:var(--sd-color-dark-highlight) !important;border-color:var(--sd-color-dark-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-dark{color:var(--sd-color-dark) !important;border-color:var(--sd-color-dark) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black,.sd-btn-outline-black:hover,.sd-btn-outline-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-black:hover,.sd-btn-black:focus{color:var(--sd-color-black-text) !important;background-color:var(--sd-color-black-highlight) !important;border-color:var(--sd-color-black-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-black{color:var(--sd-color-black) !important;border-color:var(--sd-color-black) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white,.sd-btn-outline-white:hover,.sd-btn-outline-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-btn-white:hover,.sd-btn-white:focus{color:var(--sd-color-white-text) !important;background-color:var(--sd-color-white-highlight) !important;border-color:var(--sd-color-white-highlight) !important;border-width:1px !important;border-style:solid !important}.sd-btn-outline-white{color:var(--sd-color-white) !important;border-color:var(--sd-color-white) !important;border-width:1px !important;border-style:solid !important}.sd-stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.sd-hide-link-text{font-size:0}.sd-octicon,.sd-material-icon{display:inline-block;fill:currentColor;vertical-align:middle}.sd-avatar-xs{border-radius:50%;object-fit:cover;object-position:center;width:1rem;height:1rem}.sd-avatar-sm{border-radius:50%;object-fit:cover;object-position:center;width:3rem;height:3rem}.sd-avatar-md{border-radius:50%;object-fit:cover;object-position:center;width:5rem;height:5rem}.sd-avatar-lg{border-radius:50%;object-fit:cover;object-position:center;width:7rem;height:7rem}.sd-avatar-xl{border-radius:50%;object-fit:cover;object-position:center;width:10rem;height:10rem}.sd-avatar-inherit{border-radius:50%;object-fit:cover;object-position:center;width:inherit;height:inherit}.sd-avatar-initial{border-radius:50%;object-fit:cover;object-position:center;width:initial;height:initial}.sd-card{background-clip:border-box;background-color:var(--sd-color-card-background);border:1px solid var(--sd-color-card-border);border-radius:.25rem;color:var(--sd-color-card-text);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;position:relative;word-wrap:break-word}.sd-card>hr{margin-left:0;margin-right:0}.sd-card-hover:hover{border-color:var(--sd-color-card-border-hover);transform:scale(1.01)}.sd-card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem 1rem}.sd-card-title{margin-bottom:.5rem}.sd-card-subtitle{margin-top:-0.25rem;margin-bottom:0}.sd-card-text:last-child{margin-bottom:0}.sd-card-link:hover{text-decoration:none}.sd-card-link+.card-link{margin-left:1rem}.sd-card-header{padding:.5rem 1rem;margin-bottom:0;background-color:var(--sd-color-card-header);border-bottom:1px solid var(--sd-color-card-border)}.sd-card-header:first-child{border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0}.sd-card-footer{padding:.5rem 1rem;background-color:var(--sd-color-card-footer);border-top:1px solid var(--sd-color-card-border)}.sd-card-footer:last-child{border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px)}.sd-card-header-tabs{margin-right:-0.5rem;margin-bottom:-0.5rem;margin-left:-0.5rem;border-bottom:0}.sd-card-header-pills{margin-right:-0.5rem;margin-left:-0.5rem}.sd-card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom,.sd-card-img-top{width:100%}.sd-card-img,.sd-card-img-top{border-top-left-radius:calc(0.25rem - 1px);border-top-right-radius:calc(0.25rem - 1px)}.sd-card-img,.sd-card-img-bottom{border-bottom-left-radius:calc(0.25rem - 1px);border-bottom-right-radius:calc(0.25rem - 1px)}.sd-cards-carousel{width:100%;display:flex;flex-wrap:nowrap;-ms-flex-direction:row;flex-direction:row;overflow-x:hidden;scroll-snap-type:x mandatory}.sd-cards-carousel.sd-show-scrollbar{overflow-x:auto}.sd-cards-carousel:hover,.sd-cards-carousel:focus{overflow-x:auto}.sd-cards-carousel>.sd-card{flex-shrink:0;scroll-snap-align:start}.sd-cards-carousel>.sd-card:not(:last-child){margin-right:3px}.sd-card-cols-1>.sd-card{width:90%}.sd-card-cols-2>.sd-card{width:45%}.sd-card-cols-3>.sd-card{width:30%}.sd-card-cols-4>.sd-card{width:22.5%}.sd-card-cols-5>.sd-card{width:18%}.sd-card-cols-6>.sd-card{width:15%}.sd-card-cols-7>.sd-card{width:12.8571428571%}.sd-card-cols-8>.sd-card{width:11.25%}.sd-card-cols-9>.sd-card{width:10%}.sd-card-cols-10>.sd-card{width:9%}.sd-card-cols-11>.sd-card{width:8.1818181818%}.sd-card-cols-12>.sd-card{width:7.5%}.sd-container,.sd-container-fluid,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container-xl{margin-left:auto;margin-right:auto;padding-left:var(--sd-gutter-x, 0.75rem);padding-right:var(--sd-gutter-x, 0.75rem);width:100%}@media(min-width: 576px){.sd-container-sm,.sd-container{max-width:540px}}@media(min-width: 768px){.sd-container-md,.sd-container-sm,.sd-container{max-width:720px}}@media(min-width: 992px){.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:960px}}@media(min-width: 1200px){.sd-container-xl,.sd-container-lg,.sd-container-md,.sd-container-sm,.sd-container{max-width:1140px}}.sd-row{--sd-gutter-x: 1.5rem;--sd-gutter-y: 0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:calc(var(--sd-gutter-y) * -1);margin-right:calc(var(--sd-gutter-x) * -0.5);margin-left:calc(var(--sd-gutter-x) * -0.5)}.sd-row>*{box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--sd-gutter-x) * 0.5);padding-left:calc(var(--sd-gutter-x) * 0.5);margin-top:var(--sd-gutter-y)}.sd-col{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-auto>*{flex:0 0 auto;width:auto}.sd-row-cols-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}@media(min-width: 576px){.sd-col-sm{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-sm-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-sm-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-sm-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-sm-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-sm-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-sm-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-sm-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-sm-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-sm-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-sm-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-sm-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-sm-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-sm-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 768px){.sd-col-md{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-md-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-md-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-md-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-md-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-md-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-md-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-md-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-md-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-md-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-md-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-md-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-md-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-md-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 992px){.sd-col-lg{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-lg-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-lg-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-lg-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-lg-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-lg-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-lg-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-lg-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-lg-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-lg-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-lg-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-lg-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-lg-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-lg-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}@media(min-width: 1200px){.sd-col-xl{flex:1 0 0%;-ms-flex:1 0 0%}.sd-row-cols-xl-auto{flex:1 0 auto;-ms-flex:1 0 auto;width:100%}.sd-row-cols-xl-1>*{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-row-cols-xl-2>*{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-row-cols-xl-3>*{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-row-cols-xl-4>*{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-row-cols-xl-5>*{flex:0 0 auto;-ms-flex:0 0 auto;width:20%}.sd-row-cols-xl-6>*{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-row-cols-xl-7>*{flex:0 0 auto;-ms-flex:0 0 auto;width:14.2857142857%}.sd-row-cols-xl-8>*{flex:0 0 auto;-ms-flex:0 0 auto;width:12.5%}.sd-row-cols-xl-9>*{flex:0 0 auto;-ms-flex:0 0 auto;width:11.1111111111%}.sd-row-cols-xl-10>*{flex:0 0 auto;-ms-flex:0 0 auto;width:10%}.sd-row-cols-xl-11>*{flex:0 0 auto;-ms-flex:0 0 auto;width:9.0909090909%}.sd-row-cols-xl-12>*{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}}.sd-col-auto{flex:0 0 auto;-ms-flex:0 0 auto;width:auto}.sd-col-1{flex:0 0 auto;-ms-flex:0 0 auto;width:8.3333333333%}.sd-col-2{flex:0 0 auto;-ms-flex:0 0 auto;width:16.6666666667%}.sd-col-3{flex:0 0 auto;-ms-flex:0 0 auto;width:25%}.sd-col-4{flex:0 0 auto;-ms-flex:0 0 auto;width:33.3333333333%}.sd-col-5{flex:0 0 auto;-ms-flex:0 0 auto;width:41.6666666667%}.sd-col-6{flex:0 0 auto;-ms-flex:0 0 auto;width:50%}.sd-col-7{flex:0 0 auto;-ms-flex:0 0 auto;width:58.3333333333%}.sd-col-8{flex:0 0 auto;-ms-flex:0 0 auto;width:66.6666666667%}.sd-col-9{flex:0 0 auto;-ms-flex:0 0 auto;width:75%}.sd-col-10{flex:0 0 auto;-ms-flex:0 0 auto;width:83.3333333333%}.sd-col-11{flex:0 0 auto;-ms-flex:0 0 auto;width:91.6666666667%}.sd-col-12{flex:0 0 auto;-ms-flex:0 0 auto;width:100%}.sd-g-0,.sd-gy-0{--sd-gutter-y: 0}.sd-g-0,.sd-gx-0{--sd-gutter-x: 0}.sd-g-1,.sd-gy-1{--sd-gutter-y: 0.25rem}.sd-g-1,.sd-gx-1{--sd-gutter-x: 0.25rem}.sd-g-2,.sd-gy-2{--sd-gutter-y: 0.5rem}.sd-g-2,.sd-gx-2{--sd-gutter-x: 0.5rem}.sd-g-3,.sd-gy-3{--sd-gutter-y: 1rem}.sd-g-3,.sd-gx-3{--sd-gutter-x: 1rem}.sd-g-4,.sd-gy-4{--sd-gutter-y: 1.5rem}.sd-g-4,.sd-gx-4{--sd-gutter-x: 1.5rem}.sd-g-5,.sd-gy-5{--sd-gutter-y: 3rem}.sd-g-5,.sd-gx-5{--sd-gutter-x: 3rem}@media(min-width: 576px){.sd-col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-sm-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-sm-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-sm-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-sm-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-sm-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-sm-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-sm-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-sm-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-sm-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-sm-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-sm-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-sm-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-sm-0,.sd-gy-sm-0{--sd-gutter-y: 0}.sd-g-sm-0,.sd-gx-sm-0{--sd-gutter-x: 0}.sd-g-sm-1,.sd-gy-sm-1{--sd-gutter-y: 0.25rem}.sd-g-sm-1,.sd-gx-sm-1{--sd-gutter-x: 0.25rem}.sd-g-sm-2,.sd-gy-sm-2{--sd-gutter-y: 0.5rem}.sd-g-sm-2,.sd-gx-sm-2{--sd-gutter-x: 0.5rem}.sd-g-sm-3,.sd-gy-sm-3{--sd-gutter-y: 1rem}.sd-g-sm-3,.sd-gx-sm-3{--sd-gutter-x: 1rem}.sd-g-sm-4,.sd-gy-sm-4{--sd-gutter-y: 1.5rem}.sd-g-sm-4,.sd-gx-sm-4{--sd-gutter-x: 1.5rem}.sd-g-sm-5,.sd-gy-sm-5{--sd-gutter-y: 3rem}.sd-g-sm-5,.sd-gx-sm-5{--sd-gutter-x: 3rem}}@media(min-width: 768px){.sd-col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-md-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-md-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-md-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-md-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-md-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-md-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-md-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-md-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-md-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-md-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-md-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-md-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-md-0,.sd-gy-md-0{--sd-gutter-y: 0}.sd-g-md-0,.sd-gx-md-0{--sd-gutter-x: 0}.sd-g-md-1,.sd-gy-md-1{--sd-gutter-y: 0.25rem}.sd-g-md-1,.sd-gx-md-1{--sd-gutter-x: 0.25rem}.sd-g-md-2,.sd-gy-md-2{--sd-gutter-y: 0.5rem}.sd-g-md-2,.sd-gx-md-2{--sd-gutter-x: 0.5rem}.sd-g-md-3,.sd-gy-md-3{--sd-gutter-y: 1rem}.sd-g-md-3,.sd-gx-md-3{--sd-gutter-x: 1rem}.sd-g-md-4,.sd-gy-md-4{--sd-gutter-y: 1.5rem}.sd-g-md-4,.sd-gx-md-4{--sd-gutter-x: 1.5rem}.sd-g-md-5,.sd-gy-md-5{--sd-gutter-y: 3rem}.sd-g-md-5,.sd-gx-md-5{--sd-gutter-x: 3rem}}@media(min-width: 992px){.sd-col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-lg-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-lg-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-lg-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-lg-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-lg-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-lg-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-lg-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-lg-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-lg-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-lg-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-lg-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-lg-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-lg-0,.sd-gy-lg-0{--sd-gutter-y: 0}.sd-g-lg-0,.sd-gx-lg-0{--sd-gutter-x: 0}.sd-g-lg-1,.sd-gy-lg-1{--sd-gutter-y: 0.25rem}.sd-g-lg-1,.sd-gx-lg-1{--sd-gutter-x: 0.25rem}.sd-g-lg-2,.sd-gy-lg-2{--sd-gutter-y: 0.5rem}.sd-g-lg-2,.sd-gx-lg-2{--sd-gutter-x: 0.5rem}.sd-g-lg-3,.sd-gy-lg-3{--sd-gutter-y: 1rem}.sd-g-lg-3,.sd-gx-lg-3{--sd-gutter-x: 1rem}.sd-g-lg-4,.sd-gy-lg-4{--sd-gutter-y: 1.5rem}.sd-g-lg-4,.sd-gx-lg-4{--sd-gutter-x: 1.5rem}.sd-g-lg-5,.sd-gy-lg-5{--sd-gutter-y: 3rem}.sd-g-lg-5,.sd-gx-lg-5{--sd-gutter-x: 3rem}}@media(min-width: 1200px){.sd-col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto}.sd-col-xl-1{-ms-flex:0 0 auto;flex:0 0 auto;width:8.3333333333%}.sd-col-xl-2{-ms-flex:0 0 auto;flex:0 0 auto;width:16.6666666667%}.sd-col-xl-3{-ms-flex:0 0 auto;flex:0 0 auto;width:25%}.sd-col-xl-4{-ms-flex:0 0 auto;flex:0 0 auto;width:33.3333333333%}.sd-col-xl-5{-ms-flex:0 0 auto;flex:0 0 auto;width:41.6666666667%}.sd-col-xl-6{-ms-flex:0 0 auto;flex:0 0 auto;width:50%}.sd-col-xl-7{-ms-flex:0 0 auto;flex:0 0 auto;width:58.3333333333%}.sd-col-xl-8{-ms-flex:0 0 auto;flex:0 0 auto;width:66.6666666667%}.sd-col-xl-9{-ms-flex:0 0 auto;flex:0 0 auto;width:75%}.sd-col-xl-10{-ms-flex:0 0 auto;flex:0 0 auto;width:83.3333333333%}.sd-col-xl-11{-ms-flex:0 0 auto;flex:0 0 auto;width:91.6666666667%}.sd-col-xl-12{-ms-flex:0 0 auto;flex:0 0 auto;width:100%}.sd-g-xl-0,.sd-gy-xl-0{--sd-gutter-y: 0}.sd-g-xl-0,.sd-gx-xl-0{--sd-gutter-x: 0}.sd-g-xl-1,.sd-gy-xl-1{--sd-gutter-y: 0.25rem}.sd-g-xl-1,.sd-gx-xl-1{--sd-gutter-x: 0.25rem}.sd-g-xl-2,.sd-gy-xl-2{--sd-gutter-y: 0.5rem}.sd-g-xl-2,.sd-gx-xl-2{--sd-gutter-x: 0.5rem}.sd-g-xl-3,.sd-gy-xl-3{--sd-gutter-y: 1rem}.sd-g-xl-3,.sd-gx-xl-3{--sd-gutter-x: 1rem}.sd-g-xl-4,.sd-gy-xl-4{--sd-gutter-y: 1.5rem}.sd-g-xl-4,.sd-gx-xl-4{--sd-gutter-x: 1.5rem}.sd-g-xl-5,.sd-gy-xl-5{--sd-gutter-y: 3rem}.sd-g-xl-5,.sd-gx-xl-5{--sd-gutter-x: 3rem}}.sd-flex-row-reverse{flex-direction:row-reverse !important}details.sd-dropdown{position:relative;font-size:var(--sd-fontsize-dropdown)}details.sd-dropdown:hover{cursor:pointer}details.sd-dropdown .sd-summary-content{cursor:default}details.sd-dropdown summary.sd-summary-title{padding:.5em .6em .5em 1em;font-size:var(--sd-fontsize-dropdown-title);font-weight:var(--sd-fontweight-dropdown-title);user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;list-style:none;display:inline-flex;justify-content:space-between}details.sd-dropdown summary.sd-summary-title::-webkit-details-marker{display:none}details.sd-dropdown summary.sd-summary-title:focus{outline:none}details.sd-dropdown summary.sd-summary-title .sd-summary-icon{margin-right:.6em;display:inline-flex;align-items:center}details.sd-dropdown summary.sd-summary-title .sd-summary-icon svg{opacity:.8}details.sd-dropdown summary.sd-summary-title .sd-summary-text{flex-grow:1;line-height:1.5;padding-right:.5rem}details.sd-dropdown summary.sd-summary-title .sd-summary-state-marker{pointer-events:none;display:inline-flex;align-items:center}details.sd-dropdown summary.sd-summary-title .sd-summary-state-marker svg{opacity:.6}details.sd-dropdown summary.sd-summary-title:hover .sd-summary-state-marker svg{opacity:1;transform:scale(1.1)}details.sd-dropdown[open] summary .sd-octicon.no-title{visibility:hidden}details.sd-dropdown .sd-summary-chevron-right{transition:.25s}details.sd-dropdown[open]>.sd-summary-title .sd-summary-chevron-right{transform:rotate(90deg)}details.sd-dropdown[open]>.sd-summary-title .sd-summary-chevron-down{transform:rotate(180deg)}details.sd-dropdown:not([open]).sd-card{border:none}details.sd-dropdown:not([open])>.sd-card-header{border:1px solid var(--sd-color-card-border);border-radius:.25rem}details.sd-dropdown.sd-fade-in[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out;animation:sd-fade-in .5s ease-in-out}details.sd-dropdown.sd-fade-in-slide-down[open] summary~*{-moz-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;-webkit-animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out;animation:sd-fade-in .5s ease-in-out,sd-slide-down .5s ease-in-out}.sd-col>.sd-dropdown{width:100%}.sd-summary-content>.sd-tab-set:first-child{margin-top:0}@keyframes sd-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes sd-slide-down{0%{transform:translate(0, -10px)}100%{transform:translate(0, 0)}}.sd-tab-set{border-radius:.125rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.sd-tab-set>input{opacity:0;position:absolute}.sd-tab-set>input:checked+label{border-color:var(--sd-color-tabs-underline-active);color:var(--sd-color-tabs-label-active)}.sd-tab-set>input:checked+label+.sd-tab-content{display:block}.sd-tab-set>input:not(:checked)+label:hover{color:var(--sd-color-tabs-label-hover);border-color:var(--sd-color-tabs-underline-hover)}.sd-tab-set>input:focus+label{outline-style:auto}.sd-tab-set>input:not(.focus-visible)+label{outline:none;-webkit-tap-highlight-color:transparent}.sd-tab-set>label{border-bottom:.125rem solid transparent;margin-bottom:0;color:var(--sd-color-tabs-label-inactive);border-color:var(--sd-color-tabs-underline-inactive);cursor:pointer;font-size:var(--sd-fontsize-tabs-label);font-weight:700;padding:1em 1.25em .5em;transition:color 250ms;width:auto;z-index:1}html .sd-tab-set>label:hover{color:var(--sd-color-tabs-label-active)}.sd-col>.sd-tab-set{width:100%}.sd-tab-content{box-shadow:0 -0.0625rem var(--sd-color-tabs-overline),0 .0625rem var(--sd-color-tabs-underline);display:none;order:99;padding-bottom:.75rem;padding-top:.75rem;width:100%}.sd-tab-content>:first-child{margin-top:0 !important}.sd-tab-content>:last-child{margin-bottom:0 !important}.sd-tab-content>.sd-tab-set{margin:0}.sd-sphinx-override,.sd-sphinx-override *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sd-sphinx-override p{margin-top:0}:root{--sd-color-primary: #0071bc;--sd-color-secondary: #6c757d;--sd-color-success: #28a745;--sd-color-info: #17a2b8;--sd-color-warning: #f0b37e;--sd-color-danger: #dc3545;--sd-color-light: #f8f9fa;--sd-color-muted: #6c757d;--sd-color-dark: #212529;--sd-color-black: black;--sd-color-white: white;--sd-color-primary-highlight: #0060a0;--sd-color-secondary-highlight: #5c636a;--sd-color-success-highlight: #228e3b;--sd-color-info-highlight: #148a9c;--sd-color-warning-highlight: #cc986b;--sd-color-danger-highlight: #bb2d3b;--sd-color-light-highlight: #d3d4d5;--sd-color-muted-highlight: #5c636a;--sd-color-dark-highlight: #1c1f23;--sd-color-black-highlight: black;--sd-color-white-highlight: #d9d9d9;--sd-color-primary-bg: rgba(0, 113, 188, 0.2);--sd-color-secondary-bg: rgba(108, 117, 125, 0.2);--sd-color-success-bg: rgba(40, 167, 69, 0.2);--sd-color-info-bg: rgba(23, 162, 184, 0.2);--sd-color-warning-bg: rgba(240, 179, 126, 0.2);--sd-color-danger-bg: rgba(220, 53, 69, 0.2);--sd-color-light-bg: rgba(248, 249, 250, 0.2);--sd-color-muted-bg: rgba(108, 117, 125, 0.2);--sd-color-dark-bg: rgba(33, 37, 41, 0.2);--sd-color-black-bg: rgba(0, 0, 0, 0.2);--sd-color-white-bg: rgba(255, 255, 255, 0.2);--sd-color-primary-text: #fff;--sd-color-secondary-text: #fff;--sd-color-success-text: #fff;--sd-color-info-text: #fff;--sd-color-warning-text: #212529;--sd-color-danger-text: #fff;--sd-color-light-text: #212529;--sd-color-muted-text: #fff;--sd-color-dark-text: #fff;--sd-color-black-text: #fff;--sd-color-white-text: #212529;--sd-color-shadow: rgba(0, 0, 0, 0.15);--sd-color-card-border: rgba(0, 0, 0, 0.125);--sd-color-card-border-hover: hsla(231, 99%, 66%, 1);--sd-color-card-background: transparent;--sd-color-card-text: inherit;--sd-color-card-header: transparent;--sd-color-card-footer: transparent;--sd-color-tabs-label-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-hover: hsla(231, 99%, 66%, 1);--sd-color-tabs-label-inactive: hsl(0, 0%, 66%);--sd-color-tabs-underline-active: hsla(231, 99%, 66%, 1);--sd-color-tabs-underline-hover: rgba(178, 206, 245, 0.62);--sd-color-tabs-underline-inactive: transparent;--sd-color-tabs-overline: rgb(222, 222, 222);--sd-color-tabs-underline: rgb(222, 222, 222);--sd-fontsize-tabs-label: 1rem;--sd-fontsize-dropdown: inherit;--sd-fontsize-dropdown-title: 1rem;--sd-fontweight-dropdown-title: 700} diff --git a/_static/basic.css b/_static/basic.css new file mode 100644 index 00000000..2af6139e --- /dev/null +++ b/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 270px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/_static/check-solid.svg b/_static/check-solid.svg new file mode 100644 index 00000000..92fad4b5 --- /dev/null +++ b/_static/check-solid.svg @@ -0,0 +1,4 @@ + + + + diff --git a/_static/clipboard.min.js b/_static/clipboard.min.js new file mode 100644 index 00000000..54b3c463 --- /dev/null +++ b/_static/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.8 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return o}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),c=n.n(e);function a(t){try{return document.execCommand(t)}catch(t){return}}var f=function(t){t=c()(t);return a("cut"),t};var l=function(t){var e,n,o,r=1 + + + + diff --git a/_static/copybutton.css b/_static/copybutton.css new file mode 100644 index 00000000..f1916ec7 --- /dev/null +++ b/_static/copybutton.css @@ -0,0 +1,94 @@ +/* Copy buttons */ +button.copybtn { + position: absolute; + display: flex; + top: .3em; + right: .3em; + width: 1.7em; + height: 1.7em; + opacity: 0; + transition: opacity 0.3s, border .3s, background-color .3s; + user-select: none; + padding: 0; + border: none; + outline: none; + border-radius: 0.4em; + /* The colors that GitHub uses */ + border: #1b1f2426 1px solid; + background-color: #f6f8fa; + color: #57606a; +} + +button.copybtn.success { + border-color: #22863a; + color: #22863a; +} + +button.copybtn svg { + stroke: currentColor; + width: 1.5em; + height: 1.5em; + padding: 0.1em; +} + +div.highlight { + position: relative; +} + +/* Show the copybutton */ +.highlight:hover button.copybtn, button.copybtn.success { + opacity: 1; +} + +.highlight button.copybtn:hover { + background-color: rgb(235, 235, 235); +} + +.highlight button.copybtn:active { + background-color: rgb(187, 187, 187); +} + +/** + * A minimal CSS-only tooltip copied from: + * https://codepen.io/mildrenben/pen/rVBrpK + * + * To use, write HTML like the following: + * + *

Short

+ */ + .o-tooltip--left { + position: relative; + } + + .o-tooltip--left:after { + opacity: 0; + visibility: hidden; + position: absolute; + content: attr(data-tooltip); + padding: .2em; + font-size: .8em; + left: -.2em; + background: grey; + color: white; + white-space: nowrap; + z-index: 2; + border-radius: 2px; + transform: translateX(-102%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); +} + +.o-tooltip--left:hover:after { + display: block; + opacity: 1; + visibility: visible; + transform: translateX(-100%) translateY(0); + transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); + transition-delay: .5s; +} + +/* By default the copy button shouldn't show up when printing a page */ +@media print { + button.copybtn { + display: none; + } +} diff --git a/_static/copybutton.js b/_static/copybutton.js new file mode 100644 index 00000000..efcb35cd --- /dev/null +++ b/_static/copybutton.js @@ -0,0 +1,248 @@ +// Localization support +const messages = { + 'en': { + 'copy': 'Copy', + 'copy_to_clipboard': 'Copy to clipboard', + 'copy_success': 'Copied!', + 'copy_failure': 'Failed to copy', + }, + 'es' : { + 'copy': 'Copiar', + 'copy_to_clipboard': 'Copiar al portapapeles', + 'copy_success': '¡Copiado!', + 'copy_failure': 'Error al copiar', + }, + 'de' : { + 'copy': 'Kopieren', + 'copy_to_clipboard': 'In die Zwischenablage kopieren', + 'copy_success': 'Kopiert!', + 'copy_failure': 'Fehler beim Kopieren', + }, + 'fr' : { + 'copy': 'Copier', + 'copy_to_clipboard': 'Copier dans le presse-papier', + 'copy_success': 'Copié !', + 'copy_failure': 'Échec de la copie', + }, + 'ru': { + 'copy': 'Скопировать', + 'copy_to_clipboard': 'Скопировать в буфер', + 'copy_success': 'Скопировано!', + 'copy_failure': 'Не удалось скопировать', + }, + 'zh-CN': { + 'copy': '复制', + 'copy_to_clipboard': '复制到剪贴板', + 'copy_success': '复制成功!', + 'copy_failure': '复制失败', + }, + 'it' : { + 'copy': 'Copiare', + 'copy_to_clipboard': 'Copiato negli appunti', + 'copy_success': 'Copiato!', + 'copy_failure': 'Errore durante la copia', + } +} + +let locale = 'en' +if( document.documentElement.lang !== undefined + && messages[document.documentElement.lang] !== undefined ) { + locale = document.documentElement.lang +} + +let doc_url_root = DOCUMENTATION_OPTIONS.URL_ROOT; +if (doc_url_root == '#') { + doc_url_root = ''; +} + +/** + * SVG files for our copy buttons + */ +let iconCheck = ` + ${messages[locale]['copy_success']} + + +` + +// If the user specified their own SVG use that, otherwise use the default +let iconCopy = ``; +if (!iconCopy) { + iconCopy = ` + ${messages[locale]['copy_to_clipboard']} + + + +` +} + +/** + * Set up copy/paste for code blocks + */ + +const runWhenDOMLoaded = cb => { + if (document.readyState != 'loading') { + cb() + } else if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', cb) + } else { + document.attachEvent('onreadystatechange', function() { + if (document.readyState == 'complete') cb() + }) + } +} + +const codeCellId = index => `codecell${index}` + +// Clears selected text since ClipboardJS will select the text when copying +const clearSelection = () => { + if (window.getSelection) { + window.getSelection().removeAllRanges() + } else if (document.selection) { + document.selection.empty() + } +} + +// Changes tooltip text for a moment, then changes it back +// We want the timeout of our `success` class to be a bit shorter than the +// tooltip and icon change, so that we can hide the icon before changing back. +var timeoutIcon = 2000; +var timeoutSuccessClass = 1500; + +const temporarilyChangeTooltip = (el, oldText, newText) => { + el.setAttribute('data-tooltip', newText) + el.classList.add('success') + // Remove success a little bit sooner than we change the tooltip + // So that we can use CSS to hide the copybutton first + setTimeout(() => el.classList.remove('success'), timeoutSuccessClass) + setTimeout(() => el.setAttribute('data-tooltip', oldText), timeoutIcon) +} + +// Changes the copy button icon for two seconds, then changes it back +const temporarilyChangeIcon = (el) => { + el.innerHTML = iconCheck; + setTimeout(() => {el.innerHTML = iconCopy}, timeoutIcon) +} + +const addCopyButtonToCodeCells = () => { + // If ClipboardJS hasn't loaded, wait a bit and try again. This + // happens because we load ClipboardJS asynchronously. + if (window.ClipboardJS === undefined) { + setTimeout(addCopyButtonToCodeCells, 250) + return + } + + // Add copybuttons to all of our code cells + const COPYBUTTON_SELECTOR = 'div.highlight pre'; + const codeCells = document.querySelectorAll(COPYBUTTON_SELECTOR) + codeCells.forEach((codeCell, index) => { + const id = codeCellId(index) + codeCell.setAttribute('id', id) + + const clipboardButton = id => + `` + codeCell.insertAdjacentHTML('afterend', clipboardButton(id)) + }) + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +/** + * Removes excluded text from a Node. + * + * @param {Node} target Node to filter. + * @param {string} exclude CSS selector of nodes to exclude. + * @returns {DOMString} Text from `target` with text removed. + */ +function filterText(target, exclude) { + const clone = target.cloneNode(true); // clone as to not modify the live DOM + if (exclude) { + // remove excluded nodes + clone.querySelectorAll(exclude).forEach(node => node.remove()); + } + return clone.innerText; +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} + + +var copyTargetText = (trigger) => { + var target = document.querySelector(trigger.attributes['data-clipboard-target'].value); + + // get filtered text + let exclude = '.linenos'; + + let text = filterText(target, exclude); + return formatCopyText(text, '>>> |\\.\\.\\. |\\$ |In \\[\\d*\\]: | {2,5}\\.\\.\\.: | {5,8}:', true, true, true, true, '', '') +} + + // Initialize with a callback so we can modify the text before copy + const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText}) + + // Update UI with error/success messages + clipboard.on('success', event => { + clearSelection() + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_success']) + temporarilyChangeIcon(event.trigger) + }) + + clipboard.on('error', event => { + temporarilyChangeTooltip(event.trigger, messages[locale]['copy'], messages[locale]['copy_failure']) + }) +} + +runWhenDOMLoaded(addCopyButtonToCodeCells) \ No newline at end of file diff --git a/_static/copybutton_funcs.js b/_static/copybutton_funcs.js new file mode 100644 index 00000000..dbe1aaad --- /dev/null +++ b/_static/copybutton_funcs.js @@ -0,0 +1,73 @@ +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +/** + * Removes excluded text from a Node. + * + * @param {Node} target Node to filter. + * @param {string} exclude CSS selector of nodes to exclude. + * @returns {DOMString} Text from `target` with text removed. + */ +export function filterText(target, exclude) { + const clone = target.cloneNode(true); // clone as to not modify the live DOM + if (exclude) { + // remove excluded nodes + clone.querySelectorAll(exclude).forEach(node => node.remove()); + } + return clone.innerText; +} + +// Callback when a copy button is clicked. Will be passed the node that was clicked +// should then grab the text and replace pieces of text that shouldn't be used in output +export function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = "", hereDocDelim = "") { + var regexp; + var match; + + // Do we check for line continuation characters and "HERE-documents"? + var useLineCont = !!lineContinuationChar + var useHereDoc = !!hereDocDelim + + // create regexp to capture prompt and remaining line + if (isRegexp) { + regexp = new RegExp('^(' + copybuttonPromptText + ')(.*)') + } else { + regexp = new RegExp('^(' + escapeRegExp(copybuttonPromptText) + ')(.*)') + } + + const outputLines = []; + var promptFound = false; + var gotLineCont = false; + var gotHereDoc = false; + const lineGotPrompt = []; + for (const line of textContent.split('\n')) { + match = line.match(regexp) + if (match || gotLineCont || gotHereDoc) { + promptFound = regexp.test(line) + lineGotPrompt.push(promptFound) + if (removePrompts && promptFound) { + outputLines.push(match[2]) + } else { + outputLines.push(line) + } + gotLineCont = line.endsWith(lineContinuationChar) & useLineCont + if (line.includes(hereDocDelim) & useHereDoc) + gotHereDoc = !gotHereDoc + } else if (!onlyCopyPromptLines) { + outputLines.push(line) + } else if (copyEmptyLines && line.trim() === '') { + outputLines.push(line) + } + } + + // If no lines with the prompt were found then just use original lines + if (lineGotPrompt.some(v => v === true)) { + textContent = outputLines.join('\n'); + } + + // Remove a trailing newline to avoid auto-running when pasting + if (textContent.endsWith("\n")) { + textContent = textContent.slice(0, -1) + } + return textContent +} diff --git a/_static/design-tabs.js b/_static/design-tabs.js new file mode 100644 index 00000000..b25bd6a4 --- /dev/null +++ b/_static/design-tabs.js @@ -0,0 +1,101 @@ +// @ts-check + +// Extra JS capability for selected tabs to be synced +// The selection is stored in local storage so that it persists across page loads. + +/** + * @type {Record} + */ +let sd_id_to_elements = {}; +const storageKeyPrefix = "sphinx-design-tab-id-"; + +/** + * Create a key for a tab element. + * @param {HTMLElement} el - The tab element. + * @returns {[string, string, string] | null} - The key. + * + */ +function create_key(el) { + let syncId = el.getAttribute("data-sync-id"); + let syncGroup = el.getAttribute("data-sync-group"); + if (!syncId || !syncGroup) return null; + return [syncGroup, syncId, syncGroup + "--" + syncId]; +} + +/** + * Initialize the tab selection. + * + */ +function ready() { + // Find all tabs with sync data + + /** @type {string[]} */ + let groups = []; + + document.querySelectorAll(".sd-tab-label").forEach((label) => { + if (label instanceof HTMLElement) { + let data = create_key(label); + if (data) { + let [group, id, key] = data; + + // add click event listener + // @ts-ignore + label.onclick = onSDLabelClick; + + // store map of key to elements + if (!sd_id_to_elements[key]) { + sd_id_to_elements[key] = []; + } + sd_id_to_elements[key].push(label); + + if (groups.indexOf(group) === -1) { + groups.push(group); + // Check if a specific tab has been selected via URL parameter + const tabParam = new URLSearchParams(window.location.search).get( + group + ); + if (tabParam) { + console.log( + "sphinx-design: Selecting tab id for group '" + + group + + "' from URL parameter: " + + tabParam + ); + window.sessionStorage.setItem(storageKeyPrefix + group, tabParam); + } + } + + // Check is a specific tab has been selected previously + let previousId = window.sessionStorage.getItem( + storageKeyPrefix + group + ); + if (previousId === id) { + // console.log( + // "sphinx-design: Selecting tab from session storage: " + id + // ); + // @ts-ignore + label.previousElementSibling.checked = true; + } + } + } + }); +} + +/** + * Activate other tabs with the same sync id. + * + * @this {HTMLElement} - The element that was clicked. + */ +function onSDLabelClick() { + let data = create_key(this); + if (!data) return; + let [group, id, key] = data; + for (const label of sd_id_to_elements[key]) { + if (label === this) continue; + // @ts-ignore + label.previousElementSibling.checked = true; + } + window.sessionStorage.setItem(storageKeyPrefix + group, id); +} + +document.addEventListener("DOMContentLoaded", ready, false); diff --git a/_static/doctools.js b/_static/doctools.js new file mode 100644 index 00000000..4d67807d --- /dev/null +++ b/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/_static/documentation_options.js b/_static/documentation_options.js new file mode 100644 index 00000000..920be3dc --- /dev/null +++ b/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'dirhtml', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/_static/favicon.ico b/_static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..bb295e84368d15b66302a19760269aa601058dbf GIT binary patch literal 15406 zcmeI3S#VTWddEdMl}a8`Lf zwlUaj_J|#`3E5_`*%z~8V|F9;BDHpq1ZV*X5CX(5kYv!8|L=64=Bm{#wS-)iRL!Zn zx_$3G=X}fg&bJ=r)lU&lKB2N zIXR&}&&m0r`e=wo#NX?dRf|TWKd!Dmwz#eBa&1>vSI6!4_Ky0xleI;W@M6AYnj{no z{c$uB%4<4v`ktDlw$|1QRveAoqfcXF;~xd*;W-)(9X@xqIXSGnyv*j#nQgIHaq``T zmKIY#uEW6db1>(Lnwn(4hWdIpZuZQXcKGn2
V9R3DGe5sBn69-2hkz1z2MTSG&G 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 T_&;-gW+-{^`?>yqbKrjgZ25nj literal 0 HcmV?d00001 diff --git a/_static/file.png b/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/_static/images/logo_binder.svg b/_static/images/logo_binder.svg new file mode 100644 index 00000000..45fecf75 --- /dev/null +++ b/_static/images/logo_binder.svg @@ -0,0 +1,19 @@ + + + + +logo + + + + + + + + diff --git a/_static/images/logo_colab.png b/_static/images/logo_colab.png new file mode 100644 index 0000000000000000000000000000000000000000..b7560ec216b2d1b6f77855525fe966c741833428 GIT binary patch literal 7601 zcmeI1^;ZuSFsz@@e&Hu|o~yU_Jn_7Cy4b4(M?f2S`owL6D#ysoM3Rsb4MX|l6hl52QIsX*kmQMmFZ6Xu|Wk1r15+E^+Er?@^MFpIE zq!=C|$Nn*F4aR@N|DPxS6E^f|7Z=H%T>vS)_|-RkkprWw zSGb9TlwheKfo{U5J)kX1$cHtEFe}Pa2Au|?^hCk%8gdI}l*ypIUsLXLMy9W|q-ZAw zJpZkmGRa|!=7CyrA#Bs2?5UdZ1^pDaji}+DimdE$JB@FrJvAIxy*3v#1-8OwO;OS$ zsv*P<%V4%?*Keca@o9}LMOs~ph)z!AU;${{23k&Gq7A@nDP{*I1HiTZ=Q*54?Bok) zp6L_4HhiE->YU6{m*{7O7j#SkBb9JPo!k8TD0H6{ zdSE-mmA!Js{}(?qh${0wB7Rx{*F=43D>?j3kU8MX&`sQJ+wHUD6eEr7j%*2x%5|a8 z*;AP<*tCQwj`Af5vvGHXF=9{cdzV2BMI@}VHgmol)^f>Ectcls5p3dW?40~ADd>ki za*q>v=nQQmGI5&BS!GU|iX9>qB9r=_Qm9t_Qwi+zWI zc%%oQ`P}{ZXk^}?+H!u2my^C#TD%=V|3pb$MXhJ07bx-^=oxj?ZSk!---?f2cs8_& z8?O{lvxMDZi7gsdvoZ2bmyLYs1!O1RMC)1Wv`9p-I(1pfww9siX;Lu>^>_Y=g+OHo zPm(N|h?h5Z>yze~wKtPBRv(mZx*A4R%bganw#OV=SE*=J^b#~(YfIcj(k=(i37PY7 zUiawSj8SKczPk-^=SwOOb%X+bRcFm+=N1r{{CA<=kbVq8cFGcLSGqM5FUxChbc&`o9$mUo4kZLh+%KP6m zDMd3SH~N5fH8J+8;bpxhi-9i}^PV(^u?zb49_c!Ow_!1w%w(RLEeXJoMU>Nnlc8sd z<;K$L<-WwC`NJ0PWzB59Pzbg|FZS-=xlaWDjM-PXIJ;r4qyFnFc_<-VDg5P=Zk0Pd z%f7GFg?FzC??rmjG^Ib<{cfE+dud-%)Ep=a8Q(Z-Fng}&CvD+JPdO)mL-$u4eH#LJ z7heze_GA*{rYAL;ejb#P;oTD_*Rgrw;)1(e;+zGN{)D)k?o$t&BGWEM!Hn}LQm1jd zf@B0+pEzI&qREI@Qr=#K;u~Fs)Saf>_1X|EQGz0D_a|>)d?IOck($^4a`v4Hc6sKV zgm7-VK|sz+(A$-L0BnhZ#qKk${svcv4#QmCcMCb>t9=e+^b49rrK@5C@-Qs{PN6H8Tb^nIy#)VA`)o~+c~m2m9bN}EcwI`-IP+fB&d^;19iX9{XvM6VYHE(fX{BIU zjMLmkl7p}TslG;@C!HvX=7hVy6cGIM{h7hxrM^q{j`Y4Ux1nI*k9MB?ToSK!Qpvy< zT~`Qofe|OBk8vza_r02Y;~+V6WKn(J{_?BR9@-`D&Q;nTEx7+j36Qk0(l3TahUki} z;O-FUuOnNVcc-Q3c?;A)ZpgKC-Sa8`{c}MNm$j))KPPdL#xR*0kxQz|V-;WZxI+?u zFB#~P=os0);b?+6$-z@yE%k*^!0x)K_!|4!L%ADpXqe`pG|8A+rht_!jZid=wb1j& zjPG_SeS*{ef!h*}~k!*;Aar3`tCeHO@>c{c>ak(x3f^w3+_zT>j)aP_hVoV4~^0L<5^eu_y z-@tf0YyH-(#5uTh`s3DIhpc^`UysO{L8JS|z=qnHFb)UqfMnC!Hu$=eiC+a;9t*X6R?Q8POFRq?_ak1&yP&YF6`@B=qySm8MJ)n*E zdS-&E$a$DMp!}+S%^(Q))m7O$Qece1ZtB+=H{**c0@XT53VGNeFhvnDVocubi6~ru z2X&(|kp)joFLfuG?i;d=&CZBQhez8i+lhV+c;_pEL6+Teo z1qclCF-EO~XWkH3u|unGI79@`+YLi}rF>PbBrn{PBKWF&S%K6N0u^DRx7qImnJ`+c z>Nu)TJyhpyJX_!XHh^82M+YgW&cxs(vQKEpL%}iK(hH=<@)j#E3_?a*JP@0=R z;O*(_2@>IjYLClnL+$PJ-5!vt6>UJ7$KHM3LlFFMxb19oFZ_fi@{fp};$@_n8driG z`=77&{Z^0#T>t%$hCqQi8M}0E4XipxikcsB$>o9M)rBJWQDY7UrgKAy|BP4kr`Nay z??T|Ajh_U=3lem-tL$_tEhB=Rqfi?bUj`u>$a-x5WxqHn6t4)Q-NQ^Bt-k!mcE0ES z4)*3-(5@V)=EloLT~ReorH252&Q&MWWc$oiSS{!xpO?VPpJFD-QN6c=<7HxnH1nH% zeiOM22U=%trq`HCXYNL#H!P!M1{?)QcIGYWO$;mCMHnpgd?*ZE&bmylPxndZ$B}ct zIfSCaCu!a^rBwLoo4gQJnU<%~!6cPP-qxJLZM#F&_gwU%?O$k?DIF6l%q_lvcs3})|Z?z(K3q9(BASQtZlw@+<5mv zrHuRbc}A4I9hLtxbS!@ju49VVt1XxpO?1&$LA;?ZANYo=SC^nMg{9BY`=cZcTaR{A@r{UB@;%H zPb6QWRuvU)J>>*0FB;9Uq|hH4C$u8T=T?sz{5%Ex)I%5W6wQmtel=rJ)Tbw#E7{Z;t3U zY9a$t=WkneF<9867^HBvLp>hs;A@H}9KEwn2t!?ITQ1vZ?fCFF(RfFYplQUymF`y4 z74MX)v7%4i_52G~fn=&qCfo}f%Gj8bd7dI^BDI?AlVN_!qWMJT#NBLs^p)e{tG?D4 z)|x9tIcLpO$-JtVj=#$1Y&GRE*-xUKd_{uxiZkqAudNRF!dph|+p41KtIf(8)c1p~ zv)f(_RGUK*j_{s!DNDET-@ekFNlnTXW_=+4t5>Qbq`aWl%F6e}e)<=0U{Lp}8twQ? z8cJ&^2hntuxcqQ~k;<29cTQz)@X@zbQN?f1q??MK&`gi2me&l@XLSxN|!? z;kRJcy-ahz{?{Aj;b0E9*MKf|Q@H!%2FhB8=t$dhTtR4^%hSctIRz;tXJPme_gd zLiJlhH^x9|I?_vaIKkgiAyrk&%Mv26OqK|av#t%u9aU2`wvZ61wo4$DW%z~d9P`5& zx2Zk{zL$Z1@bGicZ})KZzJKhZaZ+P!-p1uH9dgwUQ5u(q{HyTaprSe95WuIadBYv0 zPUJ~G+G2~n0DfE{7!{N*#1+?ql4nK8`Fr?o@j~3c(>T^^trK4t~7#7WQoVk)7KnFY{iPIQ?Qh8 z+Wy6Ol|m6pA8r4lQdt@$=Z{k}^_evzh~Vt_J$aBM!djok7rTfxt8f+KVv7GM1Awc>b%$6NDX zcl~`@-PYtGJSGIO(C^sr&BxXHz*cUJnB~X1`0$kX)@xH+qFRp1^Vpt^u3V$(w;_vf zHIi3Mb+A5@Nx^>r8g^tF%=j0o$Rhli22c4xiy2SEGE=Dk)m)mzF}VhHtiP43?%dTPKbDg+Gmq$pq6DlCZzY5@`})4DTSfgVh3B z6B#;izoI9B%{^V1qYVp<-KgZ=_(;UqyU^wT{IFPQ?YY4%;yq4cbgN`_dqp${t%ytU z!T>q+J?*26u4Ak4Jx#9uHgScR2!%5YX9%5Bu@HL^VaJ7%jj#ceYuaRZk7vMWX)jq| z-rX)3v33MqZ$qaWp!X$i1yJ*rOfjP-u6noa{n9pxzJw0P2+@UNLHS(-e>##A#9xc` zAr=;dh7~9d71L_&bj`DI@l$2 zSX@4j7tZbUYdo?rgctpAg3>Z@gv1{~grCRQUGVyTbzIJ-YZt2xF(cT)W0~l-76Lw* z<6YF%D4R$X>ZEj#!c)zMi018e@?^1%&N`zutD(OQ;X8am+pNW(YhRwy*%wrsnwb#T z>n{K;55wQE!cVF)X+X12fX<x`lE~DquFsMPRoBuzhuVdR8Gv zevya06i9>q3oJZyDGUHOP=iTbBg`AO7~BI0N8$lqEvK_=V)(Du!8=i|%_2^xqnCgh zYEho!c`8!%;N8>VD_@8NZxuyDHBlxl_=CBT5z4cft(NLsv9Wo81)VnjTne@sFAuLA zv^?3h>Rc?eDzkn@SvwCF^spU#ZJuQz6o4V90>Al2JL^>6N4y0wyg#4m?khQ$4$xa5 zlJZV5E$o~arUalDb_b7lXJs*(UA*P>jQ%3i`I8pyKN?*kY>iRE7J9GGiz^nA>aIV> zaJ}>Ecj_*#d8xFcjhy+6oRGfCr^qR6C2fGkhPUT-of7St?XBEaY>?_o$Y;IiV*<6d zlA;M(1^;P>tJxjiTQAB{T$TKPJ?7HfGON=ms6=%yai0?j-qHB-nhvKj_0=^YawDhO z&$wC;93X#RhmcNJTfn66z&E;UAFGeV6TsD61;r(%GZvUrDg2W3Y2hPsTqkinoI4PV zXDedcq+P^|`+Zqpt5*;9cKbAf6!xI4X{#P5OMaE4?*}B?BIY^Gyv0%UUq}lKO~C#Z zCRamrC=OeXKTKm|4p>}U!kLbE%NxPGuZ1-DR(wWFK@>24ca*qhEt5B*r|(Kty!Pj0 zZauh;NqoiV&&q9pT#S7@dl4JUVA|RmaH8kslFhypJ_)20*ebs^yXIQA(6mi|Wph<8 z=`?$6$QX%TaWE9DLjOgi>rciE+f(9`A4gn4&jZA)v29ug%2=CtvV-U|71pd@edT~> zTA~BLBxs`RYEh%@DuEBdVt=S~6x5VXGkg4=c(|;e@Uk2Mxd}~#h^+`jF}r@=C0+HS zJcg`@*AUj2Ymhzqb=;b}w_oSQ>VH<@k=B`!P>>u5;cpo7O#PB&IQ>AS{06fz5fsXyOt1R0^~JUdht$M7yYTxq$&$T&teFpg;y{BUxXR(00s6bHa2EU zQz~u3(zn7I;Ei{D%kc60jYvUAK^2vZcMr$(Mvo58z}?>{fBdZv&KdKaM(W*WeijQ+ z;}+j>_K=@gAG4KLl-oHs1uHl{4Iq_bV|(|n23Ml=$x+vE+w;rZ1-;Cgwa-{hvjGND zf$}y#wu81ZOPZ@Wj}WbIj4k%PEPTy)sLP0Kk0C=n2lpOrPl~et;FC1`zjD=4!5coL zUgdZMo&inr`+cr#<^beEmG){%LjzXvEJ;=`hMnEYG|VU#W^gR^?uh;u@MsY$78=09EY#xn`@9X5)nb~&t)6wi zB(Y#$oL!o_oI|#`LeD5m>ezV6;nKHq@ZYvUufb~M33Qw%6`GhEa}S@P!}T;dH@bLx zG_yiKDTq6zQz}25>oeWOXpL<9!kJrP)LQASx)Dh$MiaKmk}q7TZJjtiA`M6zv_)Sn zoW-S@(c2ebP+DQqvD-S;#gt=zlveyhax!aybe(eZtlKEO1+bZSM diff --git a/_static/images/logo_jupyterhub.svg b/_static/images/logo_jupyterhub.svg new file mode 100644 index 00000000..60cfe9f2 --- /dev/null +++ b/_static/images/logo_jupyterhub.svg @@ -0,0 +1 @@ +logo_jupyterhubHub diff --git a/_static/language_data.js b/_static/language_data.js new file mode 100644 index 00000000..367b8ed8 --- /dev/null +++ b/_static/language_data.js @@ -0,0 +1,199 @@ +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, if available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/_static/locales/ar/LC_MESSAGES/booktheme.mo b/_static/locales/ar/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..15541a6a375f93efed3f410c2f892174ba91aaa0 GIT binary patch literal 1541 zcmZvaJ!}+56vrn40$lhsA5n;v39lh z&UUPnK|(?lfROD&7suGxxK0yMQ@o*|gesy+5vu&(?mBh?qn-WTn|=G<|NZw~b#1&Y zus*}?#(shQ752{`;fA&4V5qyTPS`e-!60i}(%5{r(0^;D!zP`#V66yFspV7<>kvF5*86z5`j$ z=8ez}?gu^a8}Li;DtHLIQScsk0P*i2&-V)CK7WC%Q*07qAJ7GU4juvd{a%p0tQWim zeu4N7$oY#!{2XK-Ul-?ZLAIP{VE@?5Oee^5uV0WLc46~8yjT}6*2P}4uiOhI#i!V; zXZ>RTx%Xyl*phu;(K~`m+PV^FjkZeL1V5sYI1K7moHI9c!}v9+ja5U&{2;G|4YhWh zm^7}c{~g+Tn8?Tvl<2F47Nu9i{l>4L9=6uy?FAD0FiY3w(=eiIKTWvQbqOe&{(Wd5^qM9YH}dGcsaNzja& zq-k29Wt#nO;9At7wwrWQc-|J&abpO^Bu%@f8>dB@7kE5QPu!GiO4q{asH8bJN^P3Y zvv7uYJM=8C@P0OzYSB}gLot+ZNt#(-bAo@Zj6?Yfp?anYnoPQR?;I# z{we#%LHPn31obOfkF`-+I9KUX>gUj zW@~ literal 0 HcmV?d00001 diff --git a/_static/locales/ar/LC_MESSAGES/booktheme.po b/_static/locales/ar/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..34d404c6 --- /dev/null +++ b/_static/locales/ar/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "طباعة إلى PDF" + +msgid "Theme by the" +msgstr "موضوع بواسطة" + +msgid "Download source file" +msgstr "تنزيل ملف المصدر" + +msgid "open issue" +msgstr "قضية مفتوحة" + +msgid "Contents" +msgstr "محتويات" + +msgid "previous page" +msgstr "الصفحة السابقة" + +msgid "Download notebook file" +msgstr "تنزيل ملف دفتر الملاحظات" + +msgid "Copyright" +msgstr "حقوق النشر" + +msgid "Download this page" +msgstr "قم بتنزيل هذه الصفحة" + +msgid "Source repository" +msgstr "مستودع المصدر" + +msgid "By" +msgstr "بواسطة" + +msgid "repository" +msgstr "مخزن" + +msgid "Last updated on" +msgstr "آخر تحديث في" + +msgid "Toggle navigation" +msgstr "تبديل التنقل" + +msgid "Sphinx Book Theme" +msgstr "موضوع كتاب أبو الهول" + +msgid "suggest edit" +msgstr "أقترح تحرير" + +msgid "Open an issue" +msgstr "افتح قضية" + +msgid "Launch" +msgstr "إطلاق" + +msgid "Fullscreen mode" +msgstr "وضع ملء الشاشة" + +msgid "Edit this page" +msgstr "قم بتحرير هذه الصفحة" + +msgid "By the" +msgstr "بواسطة" + +msgid "next page" +msgstr "الصفحة التالية" diff --git a/_static/locales/bg/LC_MESSAGES/booktheme.mo b/_static/locales/bg/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..da95120037f8d7c52ad1f166a7682ea55ca47a01 GIT binary patch literal 1708 zcmaKqOKcQJ5QaOv0vkhkhC?jT2nh&cNkBwFYxY90B_t3AOpcMpyUpy7b@wpSL+}lZ zc_s=RKte*|C2`<_7URcy7jLdPR->G9h;qvTamgjhjlX8bj}R-P?fIs=y6dm{dw*ZQ z?5@DG8KWEHSBxzfKYoB0o|Q|4z)!5gYX#T^t^_xLtH5sX6L34Y5iEo2!IR(`P=OzV zHs>hFdG3I#!TVqr_zYYJPUie2U;izi{|U0*KVSh|x->h#2IP4+$a!{vO>jTB41AmO zFOci|8~haPLhws)C%7B@Hs=rEKFpioR`3nD2VA{8JAV*le@=j0?>TT6cp2OVJ_ot4 z*WiBe50LY0LeuQ=S0K-igY45ea0fUFvgOv1JgO3NWrRpO`@TbYDa&#J04 z8uLU~YT|f^4W5=k94AWjM}bBXBl{2ciBp+gq(T!1)p!vCDOMX z%z7FyzF${Td*=h+vjIf3x?r>F4C`bfVWiFnCdtcQkUma)U!h8cPEd+Dt17m5q+0w& zMKQ9KWTsza{bH(IICkV%?|gjko-YcyvBiPmP?e-b0iTC;FVH=*QuCr%+4AXuzT$!T zeUYc*Gb$?f>WZlb+AqligMlp^^|YVB*ODCc3;p#Z^6JGt6Ai^Bsl#*{m-qF^?6bU6 z%dKU(_p_dYpa*V5&_n77dhBk}xVz~t(j+x#hMF`X=r)bH5$d>$?h>`ABk5bs2r;-dTfq#Q2#?t@q|9teP3*uNPWy^ACfqd~8<8}Y{+a1%CJzCK zxEruG6KALRIVJ-U$3Yy!~NpG7AK|w8QyPuG1485SvTmo%i zrHNb3JL61fEcXDLQBPwL`;mLLOPayeL#0F0B5ju4Yr5-c6aTq5cjf(V=MS}!0~aLI KlK*|VZ0$SA#iddJ literal 0 HcmV?d00001 diff --git a/_static/locales/bg/LC_MESSAGES/booktheme.po b/_static/locales/bg/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..7420c19e --- /dev/null +++ b/_static/locales/bg/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: bg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Печат в PDF" + +msgid "Theme by the" +msgstr "Тема от" + +msgid "Download source file" +msgstr "Изтеглете изходния файл" + +msgid "open issue" +msgstr "отворен брой" + +msgid "Contents" +msgstr "Съдържание" + +msgid "previous page" +msgstr "предишна страница" + +msgid "Download notebook file" +msgstr "Изтеглете файла на бележника" + +msgid "Copyright" +msgstr "Авторско право" + +msgid "Download this page" +msgstr "Изтеглете тази страница" + +msgid "Source repository" +msgstr "Хранилище на източника" + +msgid "By" +msgstr "От" + +msgid "repository" +msgstr "хранилище" + +msgid "Last updated on" +msgstr "Последна актуализация на" + +msgid "Toggle navigation" +msgstr "Превключване на навигацията" + +msgid "Sphinx Book Theme" +msgstr "Тема на книгата Sphinx" + +msgid "suggest edit" +msgstr "предложи редактиране" + +msgid "Open an issue" +msgstr "Отворете проблем" + +msgid "Launch" +msgstr "Стартиране" + +msgid "Fullscreen mode" +msgstr "Режим на цял екран" + +msgid "Edit this page" +msgstr "Редактирайте тази страница" + +msgid "By the" +msgstr "По" + +msgid "next page" +msgstr "Следваща страница" diff --git a/_static/locales/bn/LC_MESSAGES/booktheme.mo b/_static/locales/bn/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..6b96639b726a2fa959a6419b6f8b7e0dfcce33ae GIT binary patch literal 1646 zcmbV~&5IOA7>8S2xE{WN>)mqrjbP_+ zD|`%n|9`+8@Gtlc{Cs5;eF=|2zkdOGUHYZ{3U0$*$xxrd?Ipj1NbvXay{#>+)sQwK zLc@BGr=Q8s@3s2pVyti%e$UVEm)Gmv@K$Kxb@iIkGQ)QH3Dc6%KAm>6q}ejje*L3r z>$oA5HgZzyAH?ybE$6p$-O1{5(WYr7xk%%tj7A!XA>+Uti*qA7X(KkWA+(Cd;*P4f zqC=@vB32^F^Nx(hvqTZ3#rXcw=x~uglc~-VqqA;wIBg~Bl-TQgnP|xqG73*IS+qW( zo6WWqDn6MsW0O!s$y282M*BKNku;Mh6WuA>9MAOkvTmve8r7pR%ZaLqqE6Ml~R{3$6RYz1^ zHxkvXiQSWlsf@*{*+H+Gm{gVVb|;J5)lr?D$ZJBS!OVxh8WP3p@HQnr8y3617^+0h zTGzYm>~GFKb#|8L(pyu`-gfp`;o|IhXQy$z<$9NR^WnYI&Q1wu?}S90&tc32?JEMg4wtZV(;LB0u<-^*y2)npB|JLL@f}SDrcO%Hi&xc%8I{oPgE$%7j?Kgl1>Fz ze@F9IjWZ|r@GsvuUE*t^AN05zoTs2{kFZmI~m25V-8`&>S^dPTx z$^cEyl^jJ+?oOKAsWhagj`qI>dC8~bzq_0hZSgC)LsF@U6+9F=tR`Ky;!WHMs_vF; z;&hv=3*2(}kGreju(wh1_KV>qMpKtu5HHORr>y#KY7MM6T^uJ&R^K(T z4hABYyJ6tQiOxVI^L*F1qO_S8am=vBunT>6i=$ATZdb3f&v8VJ2BK9Ft@hoIsQAhin!}wxzs(N*6pVu~DVqb08$hD1)Yjm|` zLS;tVxWMJrDAJYrr0_baPC1|EHL_WMn2%o?qrvC+h@~^*GMofV4`)o0LtLbidwpll9h6X)!5Y za@FKiW0X*mn3iX1k|l^w_?&_QX>NDCJM7-fGBbN{ zu90Yv ze2zJT`3vTkm``?L!Pxha5O~CXEFXgh!F}K{a6dQ$o&?W;$H6Xm6ub={0u}ff7#cnT z+0QfZQ*aGD2(E)iz#kj_+}M9>_J4vL?;Y3zckiz69|Czl1G1m9;7jl_xEK7Z;olA4 zfrnxL7yKGLyhn&Hz$@Tsa2Y%S-Uqp^$KWaO2ax0Z1af_E!2{s0AfNlAvHt_IJ_it- z&m9L@hqKN83dlMwfSm7Lkn7GsmYi+Vd*Crl_RV$g90)P3f&KE}ym+u5)|z$Y8sKu8 zBlmXaVEsAAPcR|Fw7=ro7!QS1iR;z`WrD|#V(fI1264kaFu9d685`8V+Kg6ouC~qI zmM&5s7(=Q(6*5s`F4h6A|KHA+dF~^pl%b)GmAEN=pt6W%P%&A9eQBapEEYH*4QcO7 zC3;R9II+~bF)xtNkjEETCX59u1`)=$+?iRns%x~9HOl3bCIBb~^g5yYs6 zq0Y{7oH|J1)JWU1NqdKTUnYq{mI{?16?;!bp}i2dzgNz~TZiiSZI0ibMsD3&xHY%^ z{^Gd{twz{(e_W^z1tf63$fY*36s6L66}rp)`S#WAb50t+qFj5Cn}I4y~Kg zBqen1P~=;^ymT^e&s#V29Wupq>${g`ss7ph#?V(?y7=vEOZ04vuGQ<}z{^y~66*P^ zno!}Y$w-Q&P)$-}%RuPqz&a}Is;MT!%#Nz{)Y2fgS=pT0Tnmc4rqvjN;Qj07&Ihjp zVvrB;Z*XvQD zxu;CEAr^xgZM{%PrEqqD`$N&!KBKt)RPHp%tyA?Xw}`Se37c!8k8_eTqth`htw3AZ zm~1S1a92z`@RU9C@Xu~NJj63$#L LZS{&p7>oY^Ev$2? literal 0 HcmV?d00001 diff --git a/_static/locales/cs/LC_MESSAGES/booktheme.po b/_static/locales/cs/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..c6ef4690 --- /dev/null +++ b/_static/locales/cs/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Tisk do PDF" + +msgid "Theme by the" +msgstr "Téma od" + +msgid "Download source file" +msgstr "Stáhněte si zdrojový soubor" + +msgid "open issue" +msgstr "otevřené číslo" + +msgid "Contents" +msgstr "Obsah" + +msgid "previous page" +msgstr "předchozí stránka" + +msgid "Download notebook file" +msgstr "Stáhnout soubor poznámkového bloku" + +msgid "Copyright" +msgstr "autorská práva" + +msgid "Download this page" +msgstr "Stáhněte si tuto stránku" + +msgid "Source repository" +msgstr "Zdrojové úložiště" + +msgid "By" +msgstr "Podle" + +msgid "repository" +msgstr "úložiště" + +msgid "Last updated on" +msgstr "Naposledy aktualizováno" + +msgid "Toggle navigation" +msgstr "Přepnout navigaci" + +msgid "Sphinx Book Theme" +msgstr "Téma knihy Sfinga" + +msgid "suggest edit" +msgstr "navrhnout úpravy" + +msgid "Open an issue" +msgstr "Otevřete problém" + +msgid "Launch" +msgstr "Zahájení" + +msgid "Fullscreen mode" +msgstr "Režim celé obrazovky" + +msgid "Edit this page" +msgstr "Upravit tuto stránku" + +msgid "By the" +msgstr "Podle" + +msgid "next page" +msgstr "další strana" diff --git a/_static/locales/da/LC_MESSAGES/booktheme.mo b/_static/locales/da/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..f43157d70c63ff21b4385dc36cb73f5b14eb6b01 GIT binary patch literal 1304 zcmZ9KyKmG$5XKi02pkaJ&;+qGJPH$nD9}aMKoTh;K$JVu@15uDO?nzn&U>A+XM4Phfw-zKH#7 zA8uHO_6vba9LDV+coaMYo(2zt6W}@UGI$1TfTzGEa2zD?I2bB!f*j{Lcno|A9tB^6 zC&9NBKUV%PmHi!Ly?>3CQ(qR(uY!{wt8{eFL)2d+-GK0XzbJ2D#pEAm_OQa=bqv z>yEt{#_?I3XFI&O|2#v^6KxpGSKQga zB|}Q$t~G&7@Oa2KoKDgpX6$2=SrtoT1GTMPm0g|DuG`zfb!d+>q}t0|B_w8J9T57T zIag$v?>HhOdp0JqpnQ-;9;-mHv<7xzI;nV=;{#=+_P!vo=(Ir)D;H<{wy4q`3h#>~ zA!JFY1gY2+>V#-Mj+V)JM61hEKVto8pj^8@e}8uO{nYgvwW_gEYa^$+3`k%y&y+UP zvXd(3DKs9n=AzrX-#KM`ms~V!IyTlOsmt4K9cl~8BnA3fm$9lXW`$E(G-qAU*QLn^ zrf=MwmgQsPs*#r(a_ZW2O)OJ9*z+b%Z59igr)teR+B0C^wn>Bm@6LBsXEFWfiOCp} zUSoVqXi7p(4!JPl*su1tkyFr_56Z-%sbe(I4#o^g{#-PJazXT;wvB`*ceb5TPdvg| zr`IHo4yJvN)iV_A{*4(42I?u%!cD5KXs+sR7@qEf{)q=$-v3Mo~pNRgs6dB45A_~g;fK07nJ@Atd!PtN@)FuuTCzw-;3=>No&-0+;~;^bfwAQikaeDcpMpPw z$G{ih3Gh|R-`o9n?fMUp?fnCGz(a>7-ya8gy#TV#x8N_}HSiTa&9^9*#YUsChPKG9Ug3-wb>5ahNSoell`9^ zoCmHU$Afe<^%ebHTryT9ZaN#u#(;-<*Xy#1V#z(Q#;HPD7is9+wj60gd)vV!pVPk0 zSm_{ZRgzdPbcFPDxsr?txhJx6>8J8fdK zt=*csGQxpNwNctG%DhrOQ0(2=TFGwgz2}t;Bl6j@&0V2w*_AhjI(F8SEfezEl?8P+ zO!CTPE6$HYSK7K+hThdhIeF}TXXUw`ymDc&BbHF5O7u~OM`4rK)5Mn;Zwdn zburuA-y2y!aDY4^_ YHT)aX(-~_xf`&nTEYd88)4;9x4>RdeS^xk5 literal 0 HcmV?d00001 diff --git a/_static/locales/de/LC_MESSAGES/booktheme.po b/_static/locales/de/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..4925360d --- /dev/null +++ b/_static/locales/de/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "In PDF drucken" + +msgid "Theme by the" +msgstr "Thema von der" + +msgid "Download source file" +msgstr "Quelldatei herunterladen" + +msgid "open issue" +msgstr "offenes Thema" + +msgid "Contents" +msgstr "Inhalt" + +msgid "previous page" +msgstr "vorherige Seite" + +msgid "Download notebook file" +msgstr "Notebook-Datei herunterladen" + +msgid "Copyright" +msgstr "Urheberrechte ©" + +msgid "Download this page" +msgstr "Laden Sie diese Seite herunter" + +msgid "Source repository" +msgstr "Quell-Repository" + +msgid "By" +msgstr "Durch" + +msgid "repository" +msgstr "Repository" + +msgid "Last updated on" +msgstr "Zuletzt aktualisiert am" + +msgid "Toggle navigation" +msgstr "Navigation umschalten" + +msgid "Sphinx Book Theme" +msgstr "Sphinx-Buch-Thema" + +msgid "suggest edit" +msgstr "vorschlagen zu bearbeiten" + +msgid "Open an issue" +msgstr "Öffnen Sie ein Problem" + +msgid "Launch" +msgstr "Starten" + +msgid "Fullscreen mode" +msgstr "Vollbildmodus" + +msgid "Edit this page" +msgstr "Bearbeite diese Seite" + +msgid "By the" +msgstr "Bis zum" + +msgid "next page" +msgstr "Nächste Seite" diff --git a/_static/locales/el/LC_MESSAGES/booktheme.mo b/_static/locales/el/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..fca6e9355f314677f2890f5679fd79dd67a7a5a2 GIT binary patch literal 1722 zcmZ{iPiS047{Euewt4U5n=fkKPHMz8X+JKcS{dGGPw+nU_c zCZPt>L)D-XMN9P{m<`*yO}BBoS3#I}@#Mj)Cp~!cBL2SFE!h-0?96ZHoA3Yk{@Ax; zMX{b{53_$`KhIu%fP=N`L8bVq-5d|WJ#ZJ?4|l_1_!N8@J_(C(AAASyg$6zb(>@oV z`1uSz3RmGC_yc?b-t6<2zWn$8{ZAG}N=-3*|lx#m@-51&_iV@GtlX{0B;& z|G|Us0FOuETkutwLXlsEZ^B>UVYqXrQitFhQ0g-9MK}YWfvbJC;B(wFD1G=Fz66IT z_E|X6=LsnC_o4J>9*)3IptM|SkT~LFKU;E^x(64jsmIx3FH7o|CH<3LOJ5JLNx{`F zvmIQ7ax;7w(hfIYb$phePOCsWALdpYv;G zOPqxDxMc1Trd2=DkykNltn8<_zIz?7*J?>AHYU*1VcDqDUXtp1RQ6I+)?vWC9+ax; z?Fa=g(0-ECjhcx404JfII61D)_Tt4R3KKsK<5_h!s`|lJua|GifioP~!B0M6o&VhxLBi1MZW0rDDj^PzkAoADB{_KUL1ZXW|5J z1>K9Em-u-XId|sNnX#?+BZm&>`i;#`&PJx7QxbSBs(F4es!LTbPE1;ScXB*`Y)dcp zg5;cu^J76NEc-#FppQ-YY3{TaRO_9ar-jjaZW8iNR~zWhPCd z!IGORj47br#qth1q_-xG*Y+m$QJl1ldYsi|#&y>pn)3O}2r<588%%~cb6DJv&M0zR z6Ju?!Gpp;aJ2H>n=Q;4)9QX)UBsQv>oVXExo49XqkvY35v_#)clq&D(UelG*<`bgE k?KNN}BbD^J+2#A$4_2dkCejtU)5(_TEbrUqDh*fv19*CpTMYflop9djWEuuR*>)1Ua4$Am958?gqbuT!-Hv=RLl? ztm83|e|Hk(lCvi7xt0eoxwahd<^hR9n|*n(9}lh{d$2y|1j)ji^V&Q(5ANYkOq8Lh zleoHqM}{7WYt{rZ!Q&-caXRS*F>UXd)T&q-8)(7WzFgEPZ5(@>yDt567<$^vOeG|m zu?~=4-?s8J^<76~z&terQmeydOn{H3s$Z$a!slCrhw4F8(v9dkg67!{> zqs)38tXmQDSx=k0@+!yH>Cu2hvC4%qr;bgMl%!G1I#EHx#L(SPMrYZlG|3z-YnxYL zZ<6X6Bk3-!Gg!U#kimbyhN}%YXpR zWvS9;N_Kn7c?ykNomO;Zym7(o#sxZQOml4 zuS=5^Ti>`iCCk^wX(LZG)Bqh@I0@tnvqcu0^K+ literal 0 HcmV?d00001 diff --git a/_static/locales/eo/LC_MESSAGES/booktheme.po b/_static/locales/eo/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..f7ed2262 --- /dev/null +++ b/_static/locales/eo/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: eo\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Presi al PDF" + +msgid "Theme by the" +msgstr "Temo de la" + +msgid "Download source file" +msgstr "Elŝutu fontodosieron" + +msgid "open issue" +msgstr "malferma numero" + +msgid "Contents" +msgstr "Enhavo" + +msgid "previous page" +msgstr "antaŭa paĝo" + +msgid "Download notebook file" +msgstr "Elŝutu kajeran dosieron" + +msgid "Copyright" +msgstr "Kopirajto" + +msgid "Download this page" +msgstr "Elŝutu ĉi tiun paĝon" + +msgid "Source repository" +msgstr "Fonto-deponejo" + +msgid "By" +msgstr "De" + +msgid "repository" +msgstr "deponejo" + +msgid "Last updated on" +msgstr "Laste ĝisdatigita la" + +msgid "Toggle navigation" +msgstr "Ŝalti navigadon" + +msgid "Sphinx Book Theme" +msgstr "Sfinksa Libro-Temo" + +msgid "suggest edit" +msgstr "sugesti redaktadon" + +msgid "Open an issue" +msgstr "Malfermu numeron" + +msgid "Launch" +msgstr "Lanĉo" + +msgid "Fullscreen mode" +msgstr "Plenekrana reĝimo" + +msgid "Edit this page" +msgstr "Redaktu ĉi tiun paĝon" + +msgid "By the" +msgstr "Per la" + +msgid "next page" +msgstr "sekva paĝo" diff --git a/_static/locales/es/LC_MESSAGES/booktheme.mo b/_static/locales/es/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..ba2ee4dc22148ed53f2aeba32c5965654d4a5a2f GIT binary patch literal 1396 zcmZ9Kzi$;s5XU#z;m3pU!zKwxjKJWQQZ~wEO{|$=X8*l*5%yj3EgEC(L#m|@E3-CIKPyLHQ^!@|o{A*Bj z4$La`8F(5z16~6q{%=5u|2}vYjQ#o}@F?a_K{@|BDEE2^ehj_>C4c{bvhUD`U0&uv z*?$p~_`U+=+!`qRz6aYpfs%6BBl;4{Ji6po;@;mNp-!U9Icai#X`&;(C9e__T(%nW zw)>mpL*DQZy5tBcRcdJ)pH3yKo8BdMDdMNz4yGuRTJ{f|^^|Mp6HmSWQEwW{d*1tzb%mTC1mCsq-qL_43=ae|t-eKOjtW>vaY#^sij18-e zU>uxyy|KKi?sj^CYadPWVO!m;OXD8uC5dfPa>c40^|ZUw#21BS?P$vslng{1KTKV8 zUUWKW55MCO;ccWl{h{a&Tjjy}+WN}g`qfKU z27O|OlkJ*EIw63|wI$;gbyiY{oW}PitHT?6`vSSR$zizSGM^h)jP#AENrPMDiUxTd zX^w*p+XS-1RUfK2(ynf&aeQr2cfaHFPM;g=s}~jrYQqQVnr;8cCiiNY181d=I%iD{ zk_k)9C=?Vlg{(ANUY4?kat==RzrVWKpj=Q5{Q{y&B&juy+NY=9viqbpt^2(7Sd&X+ zE$PfxwdF+Wo=v7AO<8KlnjOl_?lY%ZD#GnhWgz3#*VABvZk(=zpIWX+tyOg}6^wXC zsg65u%fhre9yJUf6KusrthQzv+672++(cecEV5X4sri<+xahTU@tQ2Tj8rs5BN4#T iU!*-mQ^Nsab@xTRCJqKkd{;ciD^w4Rh!536LH!R)!cyS? literal 0 HcmV?d00001 diff --git a/_static/locales/es/LC_MESSAGES/booktheme.po b/_static/locales/es/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..5e0029e5 --- /dev/null +++ b/_static/locales/es/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Imprimir en PDF" + +msgid "Theme by the" +msgstr "Tema por el" + +msgid "Download source file" +msgstr "Descargar archivo fuente" + +msgid "open issue" +msgstr "Tema abierto" + +msgid "Contents" +msgstr "Contenido" + +msgid "previous page" +msgstr "pagina anterior" + +msgid "Download notebook file" +msgstr "Descargar archivo de cuaderno" + +msgid "Copyright" +msgstr "Derechos de autor" + +msgid "Download this page" +msgstr "Descarga esta pagina" + +msgid "Source repository" +msgstr "Repositorio de origen" + +msgid "By" +msgstr "Por" + +msgid "repository" +msgstr "repositorio" + +msgid "Last updated on" +msgstr "Ultima actualización en" + +msgid "Toggle navigation" +msgstr "Navegación de palanca" + +msgid "Sphinx Book Theme" +msgstr "Tema del libro de la esfinge" + +msgid "suggest edit" +msgstr "sugerir editar" + +msgid "Open an issue" +msgstr "Abrir un problema" + +msgid "Launch" +msgstr "Lanzamiento" + +msgid "Fullscreen mode" +msgstr "Modo de pantalla completa" + +msgid "Edit this page" +msgstr "Edita esta página" + +msgid "By the" +msgstr "Por el" + +msgid "next page" +msgstr "siguiente página" diff --git a/_static/locales/et/LC_MESSAGES/booktheme.mo b/_static/locales/et/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..983b82391f499b67a9046c15d0dd8744650ad925 GIT binary patch literal 1341 zcmZ9Kzi%8x6vqb=^5gOYNC*@$VrY^ev%C-5~0q6cNoSQvQHcDIz*5N(ux8-*>yj7Nec{?37 zm@hCt!hG}w7K~$WDuqWK$8rQb2_6H_g2%xn@O|(C_#QX{&wyWnr$GYW22;<6py+%D zo&tXWPl7*z?}ESdeBSTB?Csw{@%I-v01qANzCR6$y#$KRMeqsu1$Y$v1AGho6Fdz5 z4az++J_JsIlKZFNIq(K3aoh#Zg45o90E(Y)LCNb!P;`Fo`2>{wpMm1IA0b zcW{Vb>7mpIdO`vjME%rCbb#Z zLB#9Ln`>&T^B1V~k&_R*YOAf;-PhM8wsB1jsl}?dyPU?psw`<|W?Y%XaN_8G>Z0@F zr*qN&8_XbscI- zgH4-*vBjDXO&n_1F3dRkd|7v|qf1VIJknP`Sstj{^T%OktXj#ancCu*yH}n+<|;=N z-jrOCj`OFMOqk`wddINU##;0GR19tBdvzi?e7zruw52+Aw>NT5Q%F&X%h*Lj=6f7z z8jNuq=-IE#jk<#c{m?m+L;rJ$825O_Nq(D^8CKl}zio+{#UD_z^uJ)WVl7Wi?YTr` zTRZHgk)aH+jLK4D)OfM3BNeE1ohJ(1utQX6H>rE`y-+P|2~e4t1fZw$r;!^}gUIe5 P_MW2m5}a<3ol*Y+f5$~k literal 0 HcmV?d00001 diff --git a/_static/locales/et/LC_MESSAGES/booktheme.po b/_static/locales/et/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..8680982a --- /dev/null +++ b/_static/locales/et/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: et\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Prindi PDF-i" + +msgid "Theme by the" +msgstr "Teema" + +msgid "Download source file" +msgstr "Laadige alla lähtefail" + +msgid "open issue" +msgstr "avatud küsimus" + +msgid "Contents" +msgstr "Sisu" + +msgid "previous page" +msgstr "eelmine leht" + +msgid "Download notebook file" +msgstr "Laadige sülearvuti fail alla" + +msgid "Copyright" +msgstr "Autoriõigus" + +msgid "Download this page" +msgstr "Laadige see leht alla" + +msgid "Source repository" +msgstr "Allikahoidla" + +msgid "By" +msgstr "Kõrval" + +msgid "repository" +msgstr "hoidla" + +msgid "Last updated on" +msgstr "Viimati uuendatud" + +msgid "Toggle navigation" +msgstr "Lülita navigeerimine sisse" + +msgid "Sphinx Book Theme" +msgstr "Sfinksiraamatu teema" + +msgid "suggest edit" +msgstr "soovita muuta" + +msgid "Open an issue" +msgstr "Avage probleem" + +msgid "Launch" +msgstr "Käivitage" + +msgid "Fullscreen mode" +msgstr "Täisekraanirežiim" + +msgid "Edit this page" +msgstr "Muutke seda lehte" + +msgid "By the" +msgstr "Autor" + +msgid "next page" +msgstr "järgmine leht" diff --git a/_static/locales/fi/LC_MESSAGES/booktheme.mo b/_static/locales/fi/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..d8ac054597c924e3010f629caeac1c748b7211cd GIT binary patch literal 1368 zcmZ9KJ#5r46vquMU&lA4Af!r|g^wXX5kqz52B58kprWEjclYv|xbfLh>>S*}#K;Cr ztS2O9B*cCTVrBw~l?gF1AR)y6B`K}2;{5K}=lB1=7k@o5`BGq<#+lRCrOA1CaQ!^kKlhsTrZJIH9K_^ryK`_q_#3i5+EIO9achW2 zhLpr@X9L;b@gpA=I!S|AaF48UDwfs-T6Zp!8`{wJvUg?CqyH8|s=drrLSix20jamb zrP3JRD~PP@yO_j1<%2BqSOtouvxrOEOU3;he^6Fx?@JOZg|3?XUWo3*(Ha#V+1j$!k61sdlv~SpmKV48XD?rEHI0qB!<^bOz`&KTmRqe+kV}^cf!#bT&>G1)AQnFuaA9SXR zO>~T6=Ywl@%y^W>^xt9_kNV@0^m3c4B9BMrgfh( zuVp?S>46Ru!ccTe7eieYS*GF0;G*3eAeplXnZCllffvOWA=>i5w+5yH-zgk~ao1dl zs44(@M0}Rt9Mp|iQ#yrKbuAq3msY|P`l$x0E<_Em{7-o?CS$aPMpfmO5T&sTb;r2u H66VBTf3Z^G literal 0 HcmV?d00001 diff --git a/_static/locales/fi/LC_MESSAGES/booktheme.po b/_static/locales/fi/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..34dac218 --- /dev/null +++ b/_static/locales/fi/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Tulosta PDF-tiedostoon" + +msgid "Theme by the" +msgstr "Teeman tekijä" + +msgid "Download source file" +msgstr "Lataa lähdetiedosto" + +msgid "open issue" +msgstr "avoin ongelma" + +msgid "Contents" +msgstr "Sisällys" + +msgid "previous page" +msgstr "Edellinen sivu" + +msgid "Download notebook file" +msgstr "Lataa muistikirjatiedosto" + +msgid "Copyright" +msgstr "Tekijänoikeus" + +msgid "Download this page" +msgstr "Lataa tämä sivu" + +msgid "Source repository" +msgstr "Lähteen arkisto" + +msgid "By" +msgstr "Tekijä" + +msgid "repository" +msgstr "arkisto" + +msgid "Last updated on" +msgstr "Viimeksi päivitetty" + +msgid "Toggle navigation" +msgstr "Vaihda navigointia" + +msgid "Sphinx Book Theme" +msgstr "Sphinx-kirjan teema" + +msgid "suggest edit" +msgstr "ehdottaa muokkausta" + +msgid "Open an issue" +msgstr "Avaa ongelma" + +msgid "Launch" +msgstr "Tuoda markkinoille" + +msgid "Fullscreen mode" +msgstr "Koko näytön tila" + +msgid "Edit this page" +msgstr "Muokkaa tätä sivua" + +msgid "By the" +msgstr "Mukaan" + +msgid "next page" +msgstr "seuraava sivu" diff --git a/_static/locales/fr/LC_MESSAGES/booktheme.mo b/_static/locales/fr/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..f663d39f0faa76c5b9bd504c51252eef74cca5de GIT binary patch literal 1412 zcmZ{jJ!}+56vv0pm9t{vhm&8^IIO`h6wqyy*798~B-FLeKdo!!~aIl*+ zlr)i&DosjGX-Sm+nxs!ffzqWyh>mpmzuUEJBQe_9-_FOq|NFX^vnPL27*{aoG5^N= z4D;zRyf9{tD}_g$!Rs`57MuYuf@i>a@G^KEoCEvdEO-|@2Qqjbj4hvlV&_NjBk*VN zEI0-~27hn)XS@HRUH=P;-hW^RJaMA={W(z9^Pt$d0saAg1L9Gy@DjZ@;0NGaQ2bFR zmAVF8043f<@DuPZcoBRAia+0jpMpPtqW^1q{u?N9{{>2%|FrAZpu~0hRC7KD%K8iN z5_lUFyPKf+qrt170VU-UgXB+gDSn8C=pG)BP!}*oSBAtdL+nayq9N(OOB9IrIvT`P%K$}>uh8j13v0qZ;CRi75AO3oX*L*$lK06qM@nyU^}?vGk#|? zmL^cG3s$SSi7>stTuW6IGS6&j2uDVy3#y+NH@oiA@h}HB>+f7UZR}>YK)jOup(LluVV6L*Ln| zlGjyt&G}L2k*%l8&|h4l=Cgm((zQMpFVk1~#tn>=qIhM|}`x`)$>jU}ieUbVvBn#nWIG%|r{ z@(VpgvBl*|+YE)ZQEjFj&wG?C)!uDalV>RR`l$A11nWA{5XsPS+9@lOaXon+Y2Ue0 zE>oVUGO*E>4ZSkmuAAH}>yV{N!q_?5zAzp!&O#! TA2+cw{Vw>h7Yg+MtLz81? literal 0 HcmV?d00001 diff --git a/_static/locales/fr/LC_MESSAGES/booktheme.po b/_static/locales/fr/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..8991a1b8 --- /dev/null +++ b/_static/locales/fr/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Imprimer au format PDF" + +msgid "Theme by the" +msgstr "Thème par le" + +msgid "Download source file" +msgstr "Télécharger le fichier source" + +msgid "open issue" +msgstr "signaler un problème" + +msgid "Contents" +msgstr "Contenu" + +msgid "previous page" +msgstr "page précédente" + +msgid "Download notebook file" +msgstr "Télécharger le fichier notebook" + +msgid "Copyright" +msgstr "droits d'auteur" + +msgid "Download this page" +msgstr "Téléchargez cette page" + +msgid "Source repository" +msgstr "Dépôt source" + +msgid "By" +msgstr "Par" + +msgid "repository" +msgstr "dépôt" + +msgid "Last updated on" +msgstr "Dernière mise à jour le" + +msgid "Toggle navigation" +msgstr "Basculer la navigation" + +msgid "Sphinx Book Theme" +msgstr "Thème du livre Sphinx" + +msgid "suggest edit" +msgstr "suggestion de modification" + +msgid "Open an issue" +msgstr "Ouvrez un problème" + +msgid "Launch" +msgstr "lancement" + +msgid "Fullscreen mode" +msgstr "Mode plein écran" + +msgid "Edit this page" +msgstr "Modifier cette page" + +msgid "By the" +msgstr "Par le" + +msgid "next page" +msgstr "page suivante" diff --git a/_static/locales/hr/LC_MESSAGES/booktheme.mo b/_static/locales/hr/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..eca4a1a2842830f06bd5f6235bf01d07bdd313d2 GIT binary patch literal 1402 zcmZ9KJ!~9B6vu}+kmLvh)-Bbu!YZ&sL*)#Wq0oOW>)iY z#I7UJKoJQlD$3MIh{}~uqNJdrprN2bqC$d-|Jz;1r;K*?xAU?8_kVBZ_tmrCDzsP8 z*U*1Oe;xg+XYfKhe?}=h>H=QRffvE^;1%!!xCXugz6HJv4#8FMQ}7bV;EQ1F_z)DG zZ@?G8@4$=TWAG*L$BsXD^S^cDKS7E2FW3WDR@(nBfihkLMdxksC-6Fmt?DmO{`(sg z-~WN)YvpX4?<)8j#_OQu@i8cQeBP}`P-^oC6rIQ5W$*{^dGHvNe1GZqM>qcuD0MvZ zY`gv@DF5B)#v@RCe+FI!b5KeyIf$NkxPmU8B<^y9bfYDCNE01tQa`D+)KxSg*?1KH z%T4MpwK#{4ax`^Pw+`@7ELnZzY-Ae)KI#K+iZZI(?h9Kvos)Hu_nn*4eN*x2ba2UM z{M2MDO`uvAtTuBKA$>9&rK$>r--+ODxdTQVUeRy*EU zh&bB0JyN@EJkPZYCOUthcI(pE2XsrkjZ2=fYTmTp<}`LiQ88IPH-(M{K`cLrtve@i z+90*(xpAqpy(Aw}Q7~LGGJzF0;VkyI^8P*c0crzk0e zJ5}W`eCg#p>R8HV8p8`ORd-?8+@kgmPE(NjB4ZRZpsbXo1{+%JywM17c0!7$ZS zdp+04j?>}H5RL>u+?)6`B(!QC;nQ(E%YYHwOi5)9EgF2Tundr{ymsm2Z;f2mKh k(#nYgw(f}olqHrfw@Z7L48TfWxy6y8Q4`jSBkXa^hFIaGO(a}_Drr&ngPIpyPhwkKtCW1zS zxtWoenhB;xBBn-yn24D8zwTalu&Ao9Uv<5s{`Yli#|wdR9BT&a6V_?0r`xb$Ol}tf zQ|!UE3)}}zg45t0a0WaEo&}G9U2qD#3myOoJP3w{Pe6|I9NZ7S1owfj!NcI&h98>q z&yD>JoIl_+xD%H+@5zQ2!9%dS z4R3=dU_S)+f*T;`dD8G1$o{WD_Im?z{P&Ih5#&5yK-S?0$ohz#wGPuD`<((=a*oaa zSxfd~Z8_ffK#0nR_2t3u=fQPw4%YQ37D84vb8p87>(4#hjm4TkQX%F>m@;G}=B){2 zg2zWWayrd|Sg?;xZdD?U4b-=GDA#mOTgTo;H=zFxL#DkfRZ3zp(E*`1&83*aj(wjsI*=O>qg>UnQ5~j z=eV|BMg@s#m;L%pJ)5RENuwU=R0WMBhBiW7o#i}rlG4#5ZDUjRSa=`Plu#w%B`C$N z(;&2$llB909??3o&fn(z?J9F?WqD;KhDS6Yp*?cS)QjtnT^a+xb_X5}DL&Qs{# z?=7`&Y~6Fp_%(9vMKiF8HfcxR=o0auv z_q>s3y7KCU*_ODI6J+IW*=v!hp&aNkC~@B;F{`@wufgMIJ{Em)%}J(mRd82~uKPNE zu!45VT#b~I5H)6^M@|hh?PQ`$a((5ZmR_kKRwzf4qZ=wC=HgJvLU}~a#5@JmHKeM~ zcQ+dhueyjH6-vS(Hi{zy4lKXvX09`YYnog=urAe8uFQH2W~4-u2I{*$(n5sIJAG7C T@Rc+s5Lgrh10CRyRonjp5+F85 literal 0 HcmV?d00001 diff --git a/_static/locales/id/LC_MESSAGES/booktheme.po b/_static/locales/id/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..b8d8d898 --- /dev/null +++ b/_static/locales/id/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: id\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Cetak ke PDF" + +msgid "Theme by the" +msgstr "Tema oleh" + +msgid "Download source file" +msgstr "Unduh file sumber" + +msgid "open issue" +msgstr "masalah terbuka" + +msgid "Contents" +msgstr "Isi" + +msgid "previous page" +msgstr "halaman sebelumnya" + +msgid "Download notebook file" +msgstr "Unduh file notebook" + +msgid "Copyright" +msgstr "hak cipta" + +msgid "Download this page" +msgstr "Unduh halaman ini" + +msgid "Source repository" +msgstr "Repositori sumber" + +msgid "By" +msgstr "Oleh" + +msgid "repository" +msgstr "gudang" + +msgid "Last updated on" +msgstr "Terakhir diperbarui saat" + +msgid "Toggle navigation" +msgstr "Alihkan navigasi" + +msgid "Sphinx Book Theme" +msgstr "Tema Buku Sphinx" + +msgid "suggest edit" +msgstr "menyarankan edit" + +msgid "Open an issue" +msgstr "Buka masalah" + +msgid "Launch" +msgstr "Meluncurkan" + +msgid "Fullscreen mode" +msgstr "Mode layar penuh" + +msgid "Edit this page" +msgstr "Edit halaman ini" + +msgid "By the" +msgstr "Oleh" + +msgid "next page" +msgstr "halaman selanjutnya" diff --git a/_static/locales/it/LC_MESSAGES/booktheme.mo b/_static/locales/it/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..53ba476edd2df2a802917e9df402257ceca1a130 GIT binary patch literal 1403 zcmZXSJ&aXF6vsyafhY1QYQiQS8W$5EU!j1vc?Gb$351Os-eM!oynD~ycVOPkWoGWm zTH9#}m5qrNiM6q@vN55xvLLatGO@6+(D*<1-gP%Hxii0e=Htvc|2Z#C?tf~~-bG(P z{{{Vh^sipSfOhD0WAK^77~TMnfQP_S;9+n9db5tC&9bmQINr7VD9+^sD7S+ zZ-HNfN5E&`3Gn-#Klk&$_V(|f-uE{+0Qc?d&L0KUUI5k4BKQM%1;keK2Z+!7i9yf* z1s(_g1vTGe`;B=I{0KY^u7H})r~P~cRhutC&HGzW&wmGM{6B(v?m2h{{0%$^{sW!` z4;<+7S_JjnwcfrBYTWn1Q(y(ER@tjRN(zMHIBUF`R@^(uqn+2D6ew@4L zg5J|zQb*pB(DY&Nai5y1VnoTv1fhfnT;$=ca`*|y1aBki?jP#?!}jLE+O4&f-Stc7 zFAjQPha1~9k0>L63$?T2m#CQ8m^hE`ZLAKj?(U1$r%jH-6<>r>d^Mu0Q^|un)>jR5 z9TALm*F@`vt0B(QhBFUgSr)TwUH`yMh9yxlG%Xix0~y&& z3LB-cB(8l-D%nxCMbU^4uPmkzD-_D^sYeYovZ|_hYt|6+raF6N+B(TUeM703ahwOj z!*UGfp34HuR+WV4?HsPL=1>m45R2fh*HNhPRL3xNJhx_&?Yu^?zAcKo|5pQ*LIIU4 z9%X=yZ5mFd5t*`cmL{7}b7xJ=^_*qP(gmDLw)@AXu2??D^RnquqSO=xr-aR>O-k3u a)*Q3l*@6-(xNK#4xqhOgLbT*tS;gN$Zm<*V0gr*F!6RT6JPeM4`#}XB0Byp@Am^!p`@mOV z7q|)@0zW4Fn)rVt_HU5uZGb6o$Bx$f{UF;tAm=#)eg-dtd%-^-*V_PDx7aDf37`|? zeoukD;5CqS=MqLB_wxkgxVgmt1?-0X4dj{qO1J@X+@W2qe$Rs(cQvs`6FUcTpOYZ# zd6M|6Adj4TU>#hW-}7v_@AidK;vhE9mlyZXi}UiVd9FvXkushE>ug^<53aoj8)J$8 zzT$crKWU3f+%VcIZ9^RVa^Sf|D{h)8T{2EVYGYN-m<~=w|xXST6$p^DKQdw8cB>C zxj87tTJ-|uo6xf+D2p+_=;?>@I%^v*stG0HugtZ28aJ+6Qc^pUp6gf-MYMWoTj~tg zX%+DUHR+isk=>R)j9gbir9vl=V(zQFO%D~)cU2G~TSm6(r@4MQuACYk8XnlX?>m1n zl?*mLUiMW+S_rt{mmE*`%Y4xZLS?ge#s||^w&DUuhxb&F9?*GH@U)weS8|?B-Ey=W zVXhhJO{GRkQQ(x)gC>{=GgAAp8D=l_%hoY_R?FV3>^s+=67+^$;pPAU literal 0 HcmV?d00001 diff --git a/_static/locales/iw/LC_MESSAGES/booktheme.po b/_static/locales/iw/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..dede9cb0 --- /dev/null +++ b/_static/locales/iw/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: iw\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "הדפס לקובץ PDF" + +msgid "Theme by the" +msgstr "נושא מאת" + +msgid "Download source file" +msgstr "הורד את קובץ המקור" + +msgid "open issue" +msgstr "בעיה פתוחה" + +msgid "Contents" +msgstr "תוכן" + +msgid "previous page" +msgstr "עמוד קודם" + +msgid "Download notebook file" +msgstr "הורד קובץ מחברת" + +msgid "Copyright" +msgstr "זכויות יוצרים" + +msgid "Download this page" +msgstr "הורד דף זה" + +msgid "Source repository" +msgstr "מאגר המקורות" + +msgid "By" +msgstr "על ידי" + +msgid "repository" +msgstr "מאגר" + +msgid "Last updated on" +msgstr "עודכן לאחרונה ב" + +msgid "Toggle navigation" +msgstr "החלף ניווט" + +msgid "Sphinx Book Theme" +msgstr "נושא ספר ספינקס" + +msgid "suggest edit" +msgstr "מציע לערוך" + +msgid "Open an issue" +msgstr "פתח גיליון" + +msgid "Launch" +msgstr "לְהַשִׁיק" + +msgid "Fullscreen mode" +msgstr "מצב מסך מלא" + +msgid "Edit this page" +msgstr "ערוך דף זה" + +msgid "By the" +msgstr "דרך" + +msgid "next page" +msgstr "עמוד הבא" diff --git a/_static/locales/ja/LC_MESSAGES/booktheme.mo b/_static/locales/ja/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..1cefd29ce3cc08792667a82dc7ff47e9843107be GIT binary patch literal 1471 zcma))U2GIp6vr=uT2=%temyktnh+I|RZ$+uHv1sbO-LX%QhlH9-p&qe?;Yo((zoth z!EFJNkCxzqu~zx0SU`c+ubA-Uv++eAe7Tv~_Q5w};+y|7GulOC;?11-%{lkn^L6K! z-gVOq>v2dQu6IDn_Xk)2*RIXZZv;v211Zik;1ak4q&&ao z_TO@S&AKd35BL)Hd%6F@2|fYNfYiq|km|n!QoJ8>{U?y}t$^hJJGcehbZ=(g z0h0bQNasgDiZ_<)lR3|UkHUThq>)oh@}pU9hR|%O@9u?E>>&uvmlpL;i{?kUXs#3! zA=v{Ey4&tWeb61=55ZW{`(?Yv@$jH7*egl~LIyrQ+;Pvb>jB%X-jWSv)wooF7*^^a zA8{ID)$FU#tBQXZgSz8$*Rlm0s5t>b|D{&KM#HaqLP$QUYJ%;x{D6mU%?d<~D+xW6 z)jE6Cg@Yxz75=BO|)yDPjO+O|NI0-c}~bwE^u;+|UZ4dMBS zR^nOyBIPfpnG5^&>>F6!-~QYSg?zBZp>bD~cz^<)cN>-?`+2o)dAX*25Q`IlO*w3@i^0SgZ zRp#5b_7~Xl$+OE7hnZ=9YND2D&Y9*#)@d&!S7*EK+UR$U{>JE*(KAMC6J0ZU+C;M^ z`q*e3JZ1ERi7p!bh0&j-o|DW(-_lp~<^OPPo;J+|qu);tEd58ke>rs)FR!$Zu=w!h z&Y7=QE_`G(9#lEWlJgUtTT#-!nao^I&VIs{Z!N}0r&&CGVrBLi!p9%ph)+&2{5I%2 zK7KuJEq2#CZ}bHdEv5a=V6`%k-R^d(Xw}Jf>8QN5e!h zBbA`3bkQ)WS=dVKSy@;~B<{I88!P_b+$$|{a=-hV^ZNe(@4NG5)%+^MSdZvHd_rtS zROaA?v3M?Hcvu@=3&Ew}VsJIs26lk!z^&jKFbl2%PlD~B0GES0VHu=655Q&M6L2Xw z0j>n66Mjh6KPU5VAnE-CQ{cRL@%?s?<{cpA*#_Ef2kG3A zWc>t4Ehi1?A9+}fAZZd{dqh6EFS_D$EB?$Vqvj_EszTqMS+R^&H z>|hBG*9E~2DXE3jK7P0*&#?=d9aa}*QCWE|l@|R-n>7qsZZHEJ ziA7vbTyRv7*q)W%4{Te&r9dUHqRxq&PWR-~XN2b?TZYH_Y0^)(lvBrgj&;rK@7cLK zl{7ZpS8_#$YZ%z&7A;41@?634e4(?a`?}KyX3lw*^v?<}-6eA>??^kt5A-`ab<~n} zfWBto^Y9)w_0g!> zVBythE}X>$!Q{z_su`ZeFjL;phL~syBFa zXVlaiX8iI$xBl9S?ljH#2qeqqHLg5*5Kc5=W8s^|_vRD}$A^$29KXrU!@=^_j5Dv6%;4cA#sHtggl>eA))${_687xQDk?6`Kc@OWFO}WOS!3uO( zjPOmFMc3|`Ymgi(M~_AsRb8*l6oj5N!k1G#oNSsg^a1i?<=NZRz?N8C9`e*ob%^~2 D6Q!<* literal 0 HcmV?d00001 diff --git a/_static/locales/ko/LC_MESSAGES/booktheme.po b/_static/locales/ko/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..c9e13a42 --- /dev/null +++ b/_static/locales/ko/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ko\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "PDF로 인쇄" + +msgid "Theme by the" +msgstr "테마별" + +msgid "Download source file" +msgstr "소스 파일 다운로드" + +msgid "open issue" +msgstr "열린 문제" + +msgid "Contents" +msgstr "내용" + +msgid "previous page" +msgstr "이전 페이지" + +msgid "Download notebook file" +msgstr "노트북 파일 다운로드" + +msgid "Copyright" +msgstr "저작권" + +msgid "Download this page" +msgstr "이 페이지 다운로드" + +msgid "Source repository" +msgstr "소스 저장소" + +msgid "By" +msgstr "으로" + +msgid "repository" +msgstr "저장소" + +msgid "Last updated on" +msgstr "마지막 업데이트" + +msgid "Toggle navigation" +msgstr "탐색 전환" + +msgid "Sphinx Book Theme" +msgstr "스핑크스 도서 테마" + +msgid "suggest edit" +msgstr "편집 제안" + +msgid "Open an issue" +msgstr "이슈 열기" + +msgid "Launch" +msgstr "시작하다" + +msgid "Fullscreen mode" +msgstr "전체 화면으로보기" + +msgid "Edit this page" +msgstr "이 페이지 편집" + +msgid "By the" +msgstr "에 의해" + +msgid "next page" +msgstr "다음 페이지" diff --git a/_static/locales/lt/LC_MESSAGES/booktheme.mo b/_static/locales/lt/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..4468ba04bc134a84fea5e3c973461cf02c9c2da3 GIT binary patch literal 1413 zcmZvaJ*-qk6vsyag_RElKVp1=p+SgQ1!6(=Ws8Trm%IpJ!!Cq&-rn=>&feLX$$UJx zy>yfs3mYDtv7j(9R@&?)#@fol&{Y(AbXL(_rUwj`9qL(er@8vgIw=pko$cKo&XOVSm=ES z^8O^qK3oL({z?6$1#4Nz2(054oJ;=;JiGzE*_kpy=GszcBB+< zVRAov2m8<3><4U^|G(mLjYp;ti7%W@WK+ZsUk6=|lDOjTSmRV7txL4wTqQTPq1|wF zISlEQU>fNty(&qp7CIsI&UP&u6NiDw%84sTTvaj2>KHSL zUeFdvoa|j$6a9r=An&41F4Us$N7~+%m$|mVh$bZFtK3-hG;n2UNLsa}OO-T4EZt3u z>KyAVM0}tv?Q&E0p7b%7C80_}Cn&{@X_(sUMf(ENwtj7O_x!@A z=Ua`j?LqCSBNGbv%p0ZcvK)?7h?KfF2W#z1yZ3^!ag#!O)ec>uZP}5RHgsxTRkqCV zwIfYx^-K=RwAWmi#E!InzKz|B%X0Cvd)CU+U3uZ$a!agNntg;f8E)25tYny{XFsAC z9jD(SkfM$V#H6LA*|v6LHF0AnD>v~vCkoohO{LBB-b;69+sY(u|L3sMiR5g1`bhd5 zjq=k+;szC}%nlMS$9vjXC#gc)P6nF&q9-bfo{CjQZe*xbNYi^#C9ConpM%1oLFKH0 za&)0WJ=gQWZ5W!M$i7!O!aIl|0e?HQ2Ro%kmCL#^O7u6its3{(8W!QLNCjg(=>2Jsvw ClWZvf literal 0 HcmV?d00001 diff --git a/_static/locales/lt/LC_MESSAGES/booktheme.po b/_static/locales/lt/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..35eabd95 --- /dev/null +++ b/_static/locales/lt/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lt\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Spausdinti į PDF" + +msgid "Theme by the" +msgstr "Tema" + +msgid "Download source file" +msgstr "Atsisiųsti šaltinio failą" + +msgid "open issue" +msgstr "atviras klausimas" + +msgid "Contents" +msgstr "Turinys" + +msgid "previous page" +msgstr "Ankstesnis puslapis" + +msgid "Download notebook file" +msgstr "Atsisiųsti nešiojamojo kompiuterio failą" + +msgid "Copyright" +msgstr "Autorių teisės" + +msgid "Download this page" +msgstr "Atsisiųskite šį puslapį" + +msgid "Source repository" +msgstr "Šaltinio saugykla" + +msgid "By" +msgstr "Iki" + +msgid "repository" +msgstr "saugykla" + +msgid "Last updated on" +msgstr "Paskutinį kartą atnaujinta" + +msgid "Toggle navigation" +msgstr "Perjungti naršymą" + +msgid "Sphinx Book Theme" +msgstr "Sfinkso knygos tema" + +msgid "suggest edit" +msgstr "pasiūlyti redaguoti" + +msgid "Open an issue" +msgstr "Atidarykite problemą" + +msgid "Launch" +msgstr "Paleiskite" + +msgid "Fullscreen mode" +msgstr "Pilno ekrano režimas" + +msgid "Edit this page" +msgstr "Redaguoti šį puslapį" + +msgid "By the" +msgstr "Prie" + +msgid "next page" +msgstr "Kitas puslapis" diff --git a/_static/locales/lv/LC_MESSAGES/booktheme.mo b/_static/locales/lv/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..74aa4d8985d96a07c4c9be96f006f3b58d884342 GIT binary patch literal 1404 zcmZ9K&5ImG7{*_dsL7ZQP5eMvump*E7&XB|oMjFhcNYS?IAk~8Yi8c*sqUVtras2( zdKwT<9)#7Cr{GC*^B|r)^?-kXCk3y9;7t%O;`2^-vdb1-{p+f(exK)k=-;oN`-(7L z!d%1r1@l$R&!4~zPs;uHG2 zUH=1$um8Z;!As|eUIA~m+y%w|6qJ5G0bd5c0G|fGYu|qlzJT=-lzP8`lHs4A_&D=q zlgkxQ>Rkt~f$z861tmufO5Zssk;}JoUbN-BWGj829FU-AF-2E~^e;o|NY;|8ctc5g z22*^U9FmJ@OFxKVl@HxMz@_4p=>umY+Zgar9e9&XBW=2mZRzw_Sr>WeT%jhWmHkCxl1EW^k%TQzfIrX3xkO4V3L9xG?DPIfe<4=WtdR+$hI z)4&^xB2Eo9w`s4@^IW-LqVor|S51w*uWpOC{VC6wR(CaQdfIncRMGG) zBv*eURUdB+Oli45Wvi9v9Ia6vne84ZIht?0o$f< A2mk;8 literal 0 HcmV?d00001 diff --git a/_static/locales/lv/LC_MESSAGES/booktheme.po b/_static/locales/lv/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..ee1bd08d --- /dev/null +++ b/_static/locales/lv/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: lv\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Drukāt PDF formātā" + +msgid "Theme by the" +msgstr "Autora tēma" + +msgid "Download source file" +msgstr "Lejupielādēt avota failu" + +msgid "open issue" +msgstr "atklāts jautājums" + +msgid "Contents" +msgstr "Saturs" + +msgid "previous page" +msgstr "iepriekšējā lapa" + +msgid "Download notebook file" +msgstr "Lejupielādēt piezīmju grāmatiņu" + +msgid "Copyright" +msgstr "Autortiesības" + +msgid "Download this page" +msgstr "Lejupielādējiet šo lapu" + +msgid "Source repository" +msgstr "Avota krātuve" + +msgid "By" +msgstr "Autors" + +msgid "repository" +msgstr "krātuve" + +msgid "Last updated on" +msgstr "Pēdējoreiz atjaunināts" + +msgid "Toggle navigation" +msgstr "Pārslēgt navigāciju" + +msgid "Sphinx Book Theme" +msgstr "Sfinksa grāmatas tēma" + +msgid "suggest edit" +msgstr "ieteikt rediģēt" + +msgid "Open an issue" +msgstr "Atveriet problēmu" + +msgid "Launch" +msgstr "Uzsākt" + +msgid "Fullscreen mode" +msgstr "Pilnekrāna režīms" + +msgid "Edit this page" +msgstr "Rediģēt šo lapu" + +msgid "By the" +msgstr "Ar" + +msgid "next page" +msgstr "nākamā lapaspuse" diff --git a/_static/locales/ml/LC_MESSAGES/booktheme.mo b/_static/locales/ml/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..2736e8fcf6f9e923c2403307f0b366086d37b335 GIT binary patch literal 1883 zcmbW0%ZnUE9LGydG>*^22ObnFl0!U=*`!Gj=35eWDu@Vn6%SYIC#v~L=<+PV8oUUd{}t%`e}*gYclZSS_^!ZZxSjb`_!_(p zTd=uFh;ewl;wqeG{x{qKTbqR#gE5?hpTno&U(oq&;Si6(7JLc50p0#-xD$R4pMlrl zez^G_At=eHx!OEj&F+K95`^|`3%xs|tB0$dYp$lQaXj&eABB3jp*ug}eRDN&btbLg zC_?O6*AzH~{-A|&9)JdV{ljJRVAnvQRl4{_?&D7b7KD1k z&HJ`jzT)e&M4gbqlB?mhqaXMpAZg<;-hlh5ZiX1=e36nUswzgb&SN${bnp4Gv=IQ6$P05hgaiFop^2w W+5FkQ^s?wV7=JSkIl3Km4aE({iDO&< literal 0 HcmV?d00001 diff --git a/_static/locales/ml/LC_MESSAGES/booktheme.po b/_static/locales/ml/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..d471277d --- /dev/null +++ b/_static/locales/ml/LC_MESSAGES/booktheme.po @@ -0,0 +1,66 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ml\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "PDF- ലേക്ക് പ്രിന്റുചെയ്യുക" + +msgid "Theme by the" +msgstr "പ്രമേയം" + +msgid "Download source file" +msgstr "ഉറവിട ഫയൽ ഡൗൺലോഡുചെയ്യുക" + +msgid "open issue" +msgstr "തുറന്ന പ്രശ്നം" + +msgid "previous page" +msgstr "മുൻപത്തെ താൾ" + +msgid "Download notebook file" +msgstr "നോട്ട്ബുക്ക് ഫയൽ ഡൺലോഡ് ചെയ്യുക" + +msgid "Copyright" +msgstr "പകർപ്പവകാശം" + +msgid "Download this page" +msgstr "ഈ പേജ് ഡൗൺലോഡുചെയ്യുക" + +msgid "Source repository" +msgstr "ഉറവിട ശേഖരം" + +msgid "By" +msgstr "എഴുതിയത്" + +msgid "Last updated on" +msgstr "അവസാനം അപ്‌ഡേറ്റുചെയ്‌തത്" + +msgid "Toggle navigation" +msgstr "നാവിഗേഷൻ ടോഗിൾ ചെയ്യുക" + +msgid "Sphinx Book Theme" +msgstr "സ്ഫിങ്ക്സ് പുസ്തക തീം" + +msgid "suggest edit" +msgstr "എഡിറ്റുചെയ്യാൻ നിർദ്ദേശിക്കുക" + +msgid "Open an issue" +msgstr "ഒരു പ്രശ്നം തുറക്കുക" + +msgid "Launch" +msgstr "സമാരംഭിക്കുക" + +msgid "Edit this page" +msgstr "ഈ പേജ് എഡിറ്റുചെയ്യുക" + +msgid "By the" +msgstr "എഴുതിയത്" + +msgid "next page" +msgstr "അടുത്ത പേജ്" diff --git a/_static/locales/mr/LC_MESSAGES/booktheme.mo b/_static/locales/mr/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..fe530100d7715cdc19a6f9db33a971665835f3c4 GIT binary patch literal 1674 zcma))-D_M$7>7rVU#qnriYO?KB2uYGt)hetL1>ylCBZ;a@uD{;yVJ8rH#3KG&bG~6 zRisua;ze5NO^wW!;71IF+EldSwKo+61wrPsjrLTQ<5nO9X$iPPmDi?R5_3f- z*T>{OU(0+)Eh-V7av_#JZ?debq)w0ISz70aXmzZP)flf6MT$}#$xUxiX4T6wMQMt1 z(Km0ZR-GJZC$ForB1Kb1(Zq`;L9Q`#U}kc-zxUba8xuy?O4rH!QlXl%M)kR(o922< zwmNB9se1h2{8TbJJXfZ=I;_fMQnySy*I84JF64D%I@MVZ^O|z8Y|M6hW!g=qOu1M! zr7ps>8h>F-#@F%PT0TB5_dY$=5YC=={Zr0fboPp~>pX9~wCwsPo&DVPkH=Hao^bXY zXIEYSL*AVI()HhVc3C?6MacEOvlp1GgbA^$%){9gR+l%mHiEnj&-JixH&Y;SGbt{+ z{t03z?p+g;%KlU0jXnJ;6hm+E zO4d<`2T4o{Hn?Oyg$)#jm)Q^UYaHJCp>S-t$!CBi7ej)}A>Wy>@(p%y@Lc$O&cyp1 zdP#?v^I4GaH+|g|B8k!Ldl%Wfwrg(}`)i>kl#a*D@zz$^*>a1%2AcIZ5x;fu4@Sqm A6951J literal 0 HcmV?d00001 diff --git a/_static/locales/mr/LC_MESSAGES/booktheme.po b/_static/locales/mr/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..f3694acf --- /dev/null +++ b/_static/locales/mr/LC_MESSAGES/booktheme.po @@ -0,0 +1,66 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: mr\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "पीडीएफवर मुद्रित करा" + +msgid "Theme by the" +msgstr "द्वारा थीम" + +msgid "Download source file" +msgstr "स्त्रोत फाइल डाउनलोड करा" + +msgid "open issue" +msgstr "खुला मुद्दा" + +msgid "previous page" +msgstr "मागील पान" + +msgid "Download notebook file" +msgstr "नोटबुक फाईल डाउनलोड करा" + +msgid "Copyright" +msgstr "कॉपीराइट" + +msgid "Download this page" +msgstr "हे पृष्ठ डाउनलोड करा" + +msgid "Source repository" +msgstr "स्त्रोत भांडार" + +msgid "By" +msgstr "द्वारा" + +msgid "Last updated on" +msgstr "अखेरचे अद्यतनित" + +msgid "Toggle navigation" +msgstr "नेव्हिगेशन टॉगल करा" + +msgid "Sphinx Book Theme" +msgstr "स्फिंक्स बुक थीम" + +msgid "suggest edit" +msgstr "संपादन सुचवा" + +msgid "Open an issue" +msgstr "एक मुद्दा उघडा" + +msgid "Launch" +msgstr "लाँच करा" + +msgid "Edit this page" +msgstr "हे पृष्ठ संपादित करा" + +msgid "By the" +msgstr "द्वारा" + +msgid "next page" +msgstr "पुढील पृष्ठ" diff --git a/_static/locales/ms/LC_MESSAGES/booktheme.mo b/_static/locales/ms/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..f02603fa2522a40060bd3f1b5d65052c77530de6 GIT binary patch literal 1213 zcmZXRJ8Km|6vs!6uj@1M0TG1}Eworov@58TBL2_ajS)TU%x`DrywA6>k!K8Y7V9F`8>~xM5BFh% zd;s@@AHhT5C-5lv6+91q2g&v)I0lYF`6PH1JO$nc$*v2Y0Pldu!3W?dC>w4z_m7+N zHb`+^fGzM9NcL|*vVRZ02ETwK;L`&&w?VSo0ms4TAm#b4;b-tP&Og8l;4hH$$Kizh zUTHW1Qhptf^p`=>djwK_>)<(X03HLMfK>lZ^ZpV{}g%EROCaZxzWLzM_G6K*tH6hX%sTdt($LUZL@kZi>& z4I{%>X6M;z?cd7EIOUBUu+=J4dW+9cF1<{ak_~s>uT$@tG%Y08Vne0ED+JMU%h%Z$ zic<%vtlUs0G-K1wUB*6INTU1FI=E=_I%q^eqhYw#(!$c*-uvW@iB{KW zFSU<)gG#o!N7S2DA(WoxaVD&jzH_fPA5HD)S)tvUw9%Z7O`>$#=2Ly;TZ=-c0nKak z(zRBKU_}wl8(X?I*VXXoI=7~I{oA>w`Q;9uyguDx%Y{TQY0E^;V^w*;2yki7=)(TYV{?8_pQ^c*8Iog%4v$iD&q$RjNP literal 0 HcmV?d00001 diff --git a/_static/locales/ms/LC_MESSAGES/booktheme.po b/_static/locales/ms/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..65b7c602 --- /dev/null +++ b/_static/locales/ms/LC_MESSAGES/booktheme.po @@ -0,0 +1,66 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ms\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Cetak ke PDF" + +msgid "Theme by the" +msgstr "Tema oleh" + +msgid "Download source file" +msgstr "Muat turun fail sumber" + +msgid "open issue" +msgstr "isu terbuka" + +msgid "previous page" +msgstr "halaman sebelumnya" + +msgid "Download notebook file" +msgstr "Muat turun fail buku nota" + +msgid "Copyright" +msgstr "hak cipta" + +msgid "Download this page" +msgstr "Muat turun halaman ini" + +msgid "Source repository" +msgstr "Repositori sumber" + +msgid "By" +msgstr "Oleh" + +msgid "Last updated on" +msgstr "Terakhir dikemas kini pada" + +msgid "Toggle navigation" +msgstr "Togol navigasi" + +msgid "Sphinx Book Theme" +msgstr "Tema Buku Sphinx" + +msgid "suggest edit" +msgstr "cadangkan edit" + +msgid "Open an issue" +msgstr "Buka masalah" + +msgid "Launch" +msgstr "Lancarkan" + +msgid "Edit this page" +msgstr "Edit halaman ini" + +msgid "By the" +msgstr "Oleh" + +msgid "next page" +msgstr "muka surat seterusnya" diff --git a/_static/locales/nl/LC_MESSAGES/booktheme.mo b/_static/locales/nl/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..e59e7ecb308a7648cd23aa6342a9ad98a61d0009 GIT binary patch literal 1356 zcmZXTJ5Los6vqcag)1TtUj+$cqf)Gju^^CJh(JODkqBZvyL;~La`(<`W@dTSmfC47 z`~-XfW8nv|v9q$Ewb8~-3*-OXUAP1%JNw%?Gxz+@WA4%Tz*~WF19KAdE9MmDt3JFi z2G0qBM-1V00UQPg!3l5(oCL3fx52Am6C4Mhfg>P+S3qC$CCGl>fS1Ad;4pXyj)5O) zey;7`>h*V!^?rj5u)n|h{RqhGNs#^A0Y8F|zya_lcoF;svhE*{ng4G|2HU zfE@n|kmKI2*9Rc$zXmzZceVWx9L4%m%`YJ5bp-OcA0YetTieIZSNl^S#~pwZ;4H`` z=N$Mv$HI25E$f~haMji1Jb17l9<0YPv;H+qxD=N#xwoeW*MWP;bwN40{S^!Qc%)BB zJTcmn_6{G#zRi--xzS!`5#mI~uCZ|uI< zDAG*t$pwyWGo=oR?puacPMao4a*|r@WQp<_L^SRBDmueDl}KS}Co^Ro_9^$SOcFwr zgiH{M*`~+`D{-(z*1_AHtn>rc54y^YwUxD{-u}$J2aUS0!RCHJbJ8P#`$euYJujnF zSx3J4d~-RN?VYnqyB67CNk=BmbTTJr!^}5Ul}<|3bx!KMv7VP!<-xMC9S1|vUApGO zd0Bln?`nCgDQBkV8|as@-IqkwS9EI1Sg6udX`Q7gMb~>RJ??afw3Uu~8!34iTBHBl zi0Od1qM24Aq+POY$n;EGCeKm6M7k&?+d-F=M@18=IxkHDla2^|PO9GX1u3ivbE1xT z+=^}4Zo{ONva*On--8-OUjI=r94V1Y}`N=IHv19Ut jbWAeLReX?b<52fDoT%;?`~gm~I(s23S;SN2irW1H>^?=m literal 0 HcmV?d00001 diff --git a/_static/locales/nl/LC_MESSAGES/booktheme.po b/_static/locales/nl/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..71bd1cda --- /dev/null +++ b/_static/locales/nl/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Afdrukken naar pdf" + +msgid "Theme by the" +msgstr "Thema door de" + +msgid "Download source file" +msgstr "Download het bronbestand" + +msgid "open issue" +msgstr "open probleem" + +msgid "Contents" +msgstr "Inhoud" + +msgid "previous page" +msgstr "vorige pagina" + +msgid "Download notebook file" +msgstr "Download notebookbestand" + +msgid "Copyright" +msgstr "auteursrechten" + +msgid "Download this page" +msgstr "Download deze pagina" + +msgid "Source repository" +msgstr "Bronopslagplaats" + +msgid "By" +msgstr "Door" + +msgid "repository" +msgstr "repository" + +msgid "Last updated on" +msgstr "Laatst geupdate op" + +msgid "Toggle navigation" +msgstr "Schakel navigatie" + +msgid "Sphinx Book Theme" +msgstr "Sphinx-boekthema" + +msgid "suggest edit" +msgstr "suggereren bewerken" + +msgid "Open an issue" +msgstr "Open een probleem" + +msgid "Launch" +msgstr "Lancering" + +msgid "Fullscreen mode" +msgstr "Volledig scherm" + +msgid "Edit this page" +msgstr "bewerk deze pagina" + +msgid "By the" +msgstr "Door de" + +msgid "next page" +msgstr "volgende bladzijde" diff --git a/_static/locales/no/LC_MESSAGES/booktheme.mo b/_static/locales/no/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..6cd15c88de675226c00ca4d0430171075e5559ff GIT binary patch literal 1317 zcmZ9KJ#5r46vxeXdz6pzxm3a|d<+2!3{|TeDD*@{E2`eX#NxZWChjG6WIIQ@F#r=I zh=CaiW+cQ+7sSlefekSsA;E&g!2exRwZe-1i=UnMe;@gJZ0`$!aT;?1^9$w~%xAl> zV2tb*0*@HQvL74+N5JFYC^!M00?&abz$SPMTm}z=1ReoH&Bq}7c@7=|Ux8!bTW}nF zU-MIK->moFLDu^NHo!f5s_zejyq^Hs&w20zcpb!5@dLyoequQQ{ss?%e?g9WWG`|7 z&ww2NwR(RWJc|7Tkn_pGec+?o{vnrOx2I^Ydmn%A>ZL_zf>(PJ4kZLarm5`W=b%5)w zZL7>O-*ZGp<~Am=pnQ;J5vxG4v+R9LTr zb?c&Cq}r^>S&prfQchyH%5IfY$0kWe(x`z>RL~GHv=*x9EbCMvg`Y>jh2AfB-HRnbKxP z_EP0Mh336ZE1KHA=alg)i!%*zV<7HREar_#Z59h#6sa0`M0_gBf~5&B$u(bn(=RqnJ4d{?xCazSi7Dd36F5NEp? z<)YnpdLTAmS7{(1PP{Mcl94asi9}+1PF;uA{A!sWqQCgLP1e#J@rEvuCjIeG)u_ z_zHL&oC3+mBarlB@FchjQl1we?OzAU{{~3=--1+!&*l7gkoNrokAjC_hW4EWNq-dF z2i^p!UUxt$Ipw67YDs=blg_=fL9(w&^`%C>sF5z^AYYUllKnH&-R^8uf4W1;k81~m7!h)9ylfZ~^CgwY?O|s!8_53#eN#D}ib%4l zPdl`G0* zrR^Q^E{h@wml7v|6|*b@U!4i752bZbtMMX#mGW2nnJcq1vs2siW24t9Wnrs}c`9q% z!@$)v5lT<+ped}AzW!iwx;nnS&I;|8q^(Zrz=TRiH9p=@zH(RSC_`OqJWVR|NoGY- zoi?`RYFwxN(ABR`V3KC)moz_L=VO;ADlp!Wow9!{+QNF%d)$vmWXUlwR2&%HTrgJW19E;7l zzACcDJ`;)Rh+tW;2Q~|urlsI%&bL2qk_T%ViEOb+o5j!ziwCfPoA2cCtFji~wj$ZA z@p+raPIaI5KE$fLmvXo`p>N|Ts6=nA`!wj_O|+>xW d^Crc{P^+yKEfI-Mu31OGXlgVp$}sP%{Q=l!SrY&N literal 0 HcmV?d00001 diff --git a/_static/locales/pl/LC_MESSAGES/booktheme.po b/_static/locales/pl/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..1b7233f4 --- /dev/null +++ b/_static/locales/pl/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Drukuj do PDF" + +msgid "Theme by the" +msgstr "Motyw autorstwa" + +msgid "Download source file" +msgstr "Pobierz plik źródłowy" + +msgid "open issue" +msgstr "otwarty problem" + +msgid "Contents" +msgstr "Zawartość" + +msgid "previous page" +msgstr "Poprzednia strona" + +msgid "Download notebook file" +msgstr "Pobierz plik notatnika" + +msgid "Copyright" +msgstr "prawa autorskie" + +msgid "Download this page" +msgstr "Pobierz tę stronę" + +msgid "Source repository" +msgstr "Repozytorium źródłowe" + +msgid "By" +msgstr "Przez" + +msgid "repository" +msgstr "magazyn" + +msgid "Last updated on" +msgstr "Ostatnia aktualizacja" + +msgid "Toggle navigation" +msgstr "Przełącz nawigację" + +msgid "Sphinx Book Theme" +msgstr "Motyw książki Sphinx" + +msgid "suggest edit" +msgstr "zaproponuj edycję" + +msgid "Open an issue" +msgstr "Otwórz problem" + +msgid "Launch" +msgstr "Uruchomić" + +msgid "Fullscreen mode" +msgstr "Pełny ekran" + +msgid "Edit this page" +msgstr "Edytuj tę strone" + +msgid "By the" +msgstr "Przez" + +msgid "next page" +msgstr "Następna strona" diff --git a/_static/locales/pt/LC_MESSAGES/booktheme.mo b/_static/locales/pt/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..d0ddb8728e1d5ef72dddc1537f66aa32251a83c8 GIT binary patch literal 1364 zcmZ9KJ!lj`6vsyszs~RYi3A)AKVkhsL@peXm>dKW4Dqy|yM5Uk-JMxyXV09qrC4bb zE3pu<6hyS##>&dd!p6cz!N$T$|8I9gLWZ0D-MpQB@BjWY-^NCt35+9{h16S(zZ$SR;BglC^gY3_DkUjkg^8V2+RlY+YuTO%k z_iDYq0kY*B<9wX!0496Oy4Me+EOW5GJh*=z>>q1pUk_m-WvQ8UtRL(@Yuttj8%m$V z)DS=E`y_5yrAF9A~6$c zkJPKnb{@xB&k-4!*pS4W%Dl|ePxSZ1+Sg`TPO-L5pAr(~Q+BJKIyQ=8l12@5q`XEEL(9HWXSq&QBy}{>iJ+c4DOK2kgX}J`T^Gu%F2!T+4-5Z_m|FJY}CdEoncB%=^@}k z8Y^ukWUsGWM!t2s(+;k!?Q_axOXPwX)3c#AQBz*)YTuYsCd%P!Q>MPL5a&+CLEE|{ zYf6)r%dB;ILRNoUXN)}2l9$d-G{iJ)q}Wy`Tzm+v2(=>^C{+#@RV=2IURF*jcR$wy zD??aTpZLaCOMFYpAW1l*WLmt4v{B_@b0}L2&D+qT-&mnh(n=I7vDb-`%I7N94^{E1 zcxfdiIC)dNQVDLK6_Z`3WS+>>*=|gU60=F_bfO(LmX~0$I{o6U(^gh;I@l*sE7k*N z>oXB$Fttuh#-5x(d)$^9P*fEbsVm+tv!2x!?&s);C8;hsuS6ZkWkdpvO!dtuOAFi$ LL?J8GWh3H0!r)O_ literal 0 HcmV?d00001 diff --git a/_static/locales/pt/LC_MESSAGES/booktheme.po b/_static/locales/pt/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..1b27314d --- /dev/null +++ b/_static/locales/pt/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Imprimir em PDF" + +msgid "Theme by the" +msgstr "Tema por" + +msgid "Download source file" +msgstr "Baixar arquivo fonte" + +msgid "open issue" +msgstr "questão aberta" + +msgid "Contents" +msgstr "Conteúdo" + +msgid "previous page" +msgstr "página anterior" + +msgid "Download notebook file" +msgstr "Baixar arquivo de notebook" + +msgid "Copyright" +msgstr "direito autoral" + +msgid "Download this page" +msgstr "Baixe esta página" + +msgid "Source repository" +msgstr "Repositório fonte" + +msgid "By" +msgstr "De" + +msgid "repository" +msgstr "repositório" + +msgid "Last updated on" +msgstr "Última atualização em" + +msgid "Toggle navigation" +msgstr "Alternar de navegação" + +msgid "Sphinx Book Theme" +msgstr "Tema do livro Sphinx" + +msgid "suggest edit" +msgstr "sugerir edição" + +msgid "Open an issue" +msgstr "Abra um problema" + +msgid "Launch" +msgstr "Lançamento" + +msgid "Fullscreen mode" +msgstr "Modo tela cheia" + +msgid "Edit this page" +msgstr "Edite essa página" + +msgid "By the" +msgstr "Pelo" + +msgid "next page" +msgstr "próxima página" diff --git a/_static/locales/ro/LC_MESSAGES/booktheme.mo b/_static/locales/ro/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..3c36ab1df7c589ad82614599b8c91f072a25d4a6 GIT binary patch literal 1390 zcmZ{jxo;Ce6vhX_5zG}5ZUr$kT#~s&fgHI>97~Z1L||yB#=9@;f%VL44!~(cNeM!T zzkmW7Bt%b&NVHTGv{Xn`NHmD=truc}813$F=kWX9`}X8CsJNO-Bou44rIk82E zW8ekwD0mG#0%~vyTm=t+&p?jz3S_U|fL!MXkn8*mPJmxQ*7*st&Nlprc^KsLXDc>A z&U>kv-vQZju7S_7m#oj;a^0f?p-U~+<-u`yunv38zH-h8DR$!Kd`AcS&)<;qgbk%n zVs?N_h8~GIYXX_z@lp(&&U!(#>;scql}cj+b*;T8mvv4X%iczp&|iz8r@bsxMq)nI z0il0S+cD35;)smw+mysr<%5hxssg3b8qA|fdg6M41IkG4eI&8uv_TLnms)LcbExO2 zuwDo22I6MX)8?U^<=i?w>XRs+vOBD)W3wzLY1Dn4sh}ZZ=wTRUXIW<`QaHM=ZLHEB z3GZW;5wavyf>i8XN#8^5U79nrN}tCR1WA7O>Nc7D^1!X_=B#5k}&OPu5mlqSjw% ze9!ggnq18PeE0wD`{?}IYPqW%0!Wn*zA9eO0NP-Sd!P*Z&(5Mvp+E_$mG57h;3yNf z@}T<)Q9@L?UQv!@t~hzGN|ByUi8HjaaJHLM9|{Y76xA;^5T@*t78+y)y;r5zA;cW% z6j3gq1Ltf%1{N7Mh$B&^tz>kF94xj(C8Xe$PteOytPUysU!2AvEWuE6Fj7Z>o*_qS K1txIYaExD}s9q8P literal 0 HcmV?d00001 diff --git a/_static/locales/ro/LC_MESSAGES/booktheme.po b/_static/locales/ro/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..1783ad2c --- /dev/null +++ b/_static/locales/ro/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ro\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Imprimați în PDF" + +msgid "Theme by the" +msgstr "Tema de" + +msgid "Download source file" +msgstr "Descărcați fișierul sursă" + +msgid "open issue" +msgstr "problema deschisă" + +msgid "Contents" +msgstr "Cuprins" + +msgid "previous page" +msgstr "pagina anterioară" + +msgid "Download notebook file" +msgstr "Descărcați fișierul notebook" + +msgid "Copyright" +msgstr "Drepturi de autor" + +msgid "Download this page" +msgstr "Descarcă această pagină" + +msgid "Source repository" +msgstr "Depozit sursă" + +msgid "By" +msgstr "De" + +msgid "repository" +msgstr "repertoriu" + +msgid "Last updated on" +msgstr "Ultima actualizare la" + +msgid "Toggle navigation" +msgstr "Comutare navigare" + +msgid "Sphinx Book Theme" +msgstr "Tema Sphinx Book" + +msgid "suggest edit" +msgstr "sugerează editare" + +msgid "Open an issue" +msgstr "Deschideți o problemă" + +msgid "Launch" +msgstr "Lansa" + +msgid "Fullscreen mode" +msgstr "Modul ecran întreg" + +msgid "Edit this page" +msgstr "Editați această pagină" + +msgid "By the" +msgstr "Langa" + +msgid "next page" +msgstr "pagina următoare" diff --git a/_static/locales/ru/LC_MESSAGES/booktheme.mo b/_static/locales/ru/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..6b8ca41f36ebf869818399a9584cdb15619bea78 GIT binary patch literal 1722 zcmZ{iPiz!b9LJx6N>>C0{~WCHj6uL;MNkv6buUP3NFY{Oy-#-^yQABg$;>R!8?=By zpk6eZkcjo>ZEd^jw#)9`jK?>LiHQeq#*-Is-2D7zrnWZnvTr^!zxmDY_x*j}{=RSL zmx}cqdz}3X`vCjaLtI$99#)E<8sqXP+zofZ{csG9!)M_u@M&0v```y~4>WKujB{Rv zQs)c!1iS-x!|&l!u$%MeJpNn${3n!t_hA9<*pYp|2g>s}lsboC555U^!oQ&C`x}bB zF@i6^7vWp*ZFm@l@KtyR9)~}{gYZ5)1P?rt)qfX0&vOMzodC-FMW|sH%3Qy~Bk&LS zGTh71lK%!g2;Ya|(?xg`eg?&InL*;Bbw69Q%iLQRlGKxI@mH42FH8IruciMpY+9?w z*>bj97p>AWd<Owguyc8|lEQ8#P&TV@hv4PPLlNs2UpM=~=&K)EOs=bt|Yjv8id_3$EYFWp61Twd!?)O2Z^b@jo`zxOlo&{K$k6 z)k-?+UzGmEv~%I?>9doY?~lFqdLcKqSeXk!s4V?^=qzIFXM1NyDcB~ z^h;%Z?8rnx*}Ha_UXm-xW!tfr6}wJC zN81q@gr(9Fv3Bw)dp^0PldHtnY+u_Sxf$6W-wgO>O_L_|y0EwXD@jYPrM(BqO_Ddt zDEk#lk9`p%b*uDr%Zu6PU zG_bh>@urJlTp^1w`f2$AR}2{1AJVy&({OH-XdNXBVw1Appn{Ug&D59FU~!E~qO?uY z2%}Tqa+P*D{a@R!x0@kSMzqWv;2@B-rtEiw@7eZ-vn#fz?Gn!QP_`~@{!JJr^D>2; zYX|@P$s&z$lLI4H4zg!gP;s5$q8v^-E0ZiHHwb^e&1~CN%&|G1oY;Q{yqk7fcCfJk literal 0 HcmV?d00001 diff --git a/_static/locales/ru/LC_MESSAGES/booktheme.po b/_static/locales/ru/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..b1176b7a --- /dev/null +++ b/_static/locales/ru/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Распечатать в PDF" + +msgid "Theme by the" +msgstr "Тема от" + +msgid "Download source file" +msgstr "Скачать исходный файл" + +msgid "open issue" +msgstr "открытый вопрос" + +msgid "Contents" +msgstr "Содержание" + +msgid "previous page" +msgstr "Предыдущая страница" + +msgid "Download notebook file" +msgstr "Скачать файл записной книжки" + +msgid "Copyright" +msgstr "авторское право" + +msgid "Download this page" +msgstr "Загрузите эту страницу" + +msgid "Source repository" +msgstr "Исходный репозиторий" + +msgid "By" +msgstr "По" + +msgid "repository" +msgstr "хранилище" + +msgid "Last updated on" +msgstr "Последнее обновление" + +msgid "Toggle navigation" +msgstr "Переключить навигацию" + +msgid "Sphinx Book Theme" +msgstr "Тема книги Сфинкс" + +msgid "suggest edit" +msgstr "предложить редактировать" + +msgid "Open an issue" +msgstr "Открыть вопрос" + +msgid "Launch" +msgstr "Запуск" + +msgid "Fullscreen mode" +msgstr "Полноэкранный режим" + +msgid "Edit this page" +msgstr "Редактировать эту страницу" + +msgid "By the" +msgstr "Посредством" + +msgid "next page" +msgstr "Следующая страница" diff --git a/_static/locales/sk/LC_MESSAGES/booktheme.mo b/_static/locales/sk/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..59bd0ddfa341477cf5ccfdc88f4c3e6127046f7a GIT binary patch literal 1393 zcmZ9KKWrRD6vijSKyrit=ARHoJeoj?1A-``v#uc6mLesxmAg<-Am(Iw==v>7a08THd<;rm`=IpY4k&eh2g>u`gW~ryD0Tk|O5J~fa_(Nc zzXDUK|0PiBy9|o{Iw-jZpgi{xC@mLFS&OFRlMGV#=>h3w2I;R1(UBqg;w6239ut!4 z2~6=jJ)|#^@o`MFWBGp7wHbaCb5`#=8`;KyKjqAuERSl#ePRozQ?f4d$hk4?nu1TZ zgR6YP4{gTW1S)mLYBMzv(*G~Fs-g&qXSOtPDXSYgM5@YEM^4FEtSg)3YP-Y%ZOMdC zvD)#*Ld4O|#+Dj1ex6GgOmu#x24!ySK3$V+!<;9qmRA}zH4R;s6--u7O{SxPiRJy+ zq;ulan3SHU##L?XQ}Ut8GDb>9C5YnoIEmfsY4-#60ct&J{JY}cT{?GeUcb3{a{tPk zZ+F_pc89Z)dlV7it+LR@u2Yh0A2{}J54XBkPtJL5!!G;orcGRGY}TWzBNIC}w9P8? zwMSvx*(oZoi|&^5lh7kuE|;PI&N?-J`)^o!txs1juXogY6?)ZEJ1#xCtJU@>=)Bnr zU1l0t--9arjh>CyA! zZ|R}^TYP-iOeo=k_sEUBK5*0V4ADZtsjcUv$Fb6dIjHA}(Ucy4hGb%cXdqT-thpkjw8w z94mEnM;EAFODWoF<;0UM`ZS%T+8S2)Skfe~=jnmos~5@rll9m4U7_dmM!H@|Co1(H Di}h+h literal 0 HcmV?d00001 diff --git a/_static/locales/sk/LC_MESSAGES/booktheme.po b/_static/locales/sk/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..65012881 --- /dev/null +++ b/_static/locales/sk/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Tlač do PDF" + +msgid "Theme by the" +msgstr "Téma od" + +msgid "Download source file" +msgstr "Stiahnite si zdrojový súbor" + +msgid "open issue" +msgstr "otvorené vydanie" + +msgid "Contents" +msgstr "Obsah" + +msgid "previous page" +msgstr "predchádzajúca strana" + +msgid "Download notebook file" +msgstr "Stiahnite si zošit" + +msgid "Copyright" +msgstr "Autorské práva" + +msgid "Download this page" +msgstr "Stiahnite si túto stránku" + +msgid "Source repository" +msgstr "Zdrojové úložisko" + +msgid "By" +msgstr "Autor:" + +msgid "repository" +msgstr "Úložisko" + +msgid "Last updated on" +msgstr "Posledná aktualizácia dňa" + +msgid "Toggle navigation" +msgstr "Prepnúť navigáciu" + +msgid "Sphinx Book Theme" +msgstr "Téma knihy Sfinga" + +msgid "suggest edit" +msgstr "navrhnúť úpravu" + +msgid "Open an issue" +msgstr "Otvorte problém" + +msgid "Launch" +msgstr "Spustiť" + +msgid "Fullscreen mode" +msgstr "Režim celej obrazovky" + +msgid "Edit this page" +msgstr "Upraviť túto stránku" + +msgid "By the" +msgstr "Podľa" + +msgid "next page" +msgstr "ďalšia strana" diff --git a/_static/locales/sl/LC_MESSAGES/booktheme.mo b/_static/locales/sl/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..87bf26de683cb18c73bd23c2b4c57ef6a02545ec GIT binary patch literal 1374 zcmZ9KyKfXR5XQ}$9PjWFC=#aOAvj*5h%UN@MVlwf1j4YtMW$vtK7Sz7QA(F{dy;VIIMJx(*A* z*7ZW*5ffN8gWJKa;9hV7oB|Jk$H0AH8=M61fIC3~cY(3y6OjEp2X}z4!0q5`a1Z#l z=EvIprQUx7Io@xu0dCk(-QNlFehOqi$H8~tMQ{`NqvlU=3--Uk-Qc>7LL34o!NcHb zkab@J`TGNq^T|Ly_ZVc|FG1Eh0$KkXa4+~CYpSj^k88a!&*8idy!V z`%t7QK_wv*NO67Y#^!v|yiY#BTT52)n;gGcMsD1kzd5`1{rs78jk>VS#g&{|GD5)F z+$e2lWVfe$pxC~*IM2jgT5~@lP4MDpz zCx-(XW@_w<9uAzh?%#>APv}sH5H9X{E*5diD#H~rZm5EBHe?#D`0z|yaZ3$VV*3d1 zf=gV-^ojji64%jMWljW5^x#&@4 literal 0 HcmV?d00001 diff --git a/_static/locales/sl/LC_MESSAGES/booktheme.po b/_static/locales/sl/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..3c7e3a86 --- /dev/null +++ b/_static/locales/sl/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Natisni v PDF" + +msgid "Theme by the" +msgstr "Tema avtorja" + +msgid "Download source file" +msgstr "Prenesite izvorno datoteko" + +msgid "open issue" +msgstr "odprto vprašanje" + +msgid "Contents" +msgstr "Vsebina" + +msgid "previous page" +msgstr "Prejšnja stran" + +msgid "Download notebook file" +msgstr "Prenesite datoteko zvezka" + +msgid "Copyright" +msgstr "avtorske pravice" + +msgid "Download this page" +msgstr "Prenesite to stran" + +msgid "Source repository" +msgstr "Izvorno skladišče" + +msgid "By" +msgstr "Avtor" + +msgid "repository" +msgstr "odlagališče" + +msgid "Last updated on" +msgstr "Nazadnje posodobljeno dne" + +msgid "Toggle navigation" +msgstr "Preklopi navigacijo" + +msgid "Sphinx Book Theme" +msgstr "Tema knjige Sphinx" + +msgid "suggest edit" +msgstr "predlagajte urejanje" + +msgid "Open an issue" +msgstr "Odprite številko" + +msgid "Launch" +msgstr "Kosilo" + +msgid "Fullscreen mode" +msgstr "Celozaslonski način" + +msgid "Edit this page" +msgstr "Uredite to stran" + +msgid "By the" +msgstr "Avtor" + +msgid "next page" +msgstr "Naslednja stran" diff --git a/_static/locales/sr/LC_MESSAGES/booktheme.mo b/_static/locales/sr/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..ec740f4852f3973fa72ed0c7f7cf59273b8dba41 GIT binary patch literal 1679 zcmZ{i&2Jk;7>5TMpf#n12FigTrXZCM$qB70R5|j2(nPA%iiifpt=iZVd#SU#+K*9wix4UV%CCk|YD;tzleJn!xzyAg~$`^-$R zf|BP7d;(sF`{57pDcCFcOL6{NvA++c-k-1p_w32;FeHVeLgQ7^hJ zGdzy`B&?ZThjG)5bl^0MnyI@nssG*1CaqRf3ytygl3zFKtP{mL3F=O4>e~0%Ctj_o z-VO+GJncqNV$@vddL;4n-04|$KCc&=z>nP650};Xpy_&-^(oOd-!w}`WnaCJdz$wf zjh4}#bIENuu}cxpT#j>fzSPN!1fjX)`bi;sBz=@L8U~dHCrI%>FtxaRre1!}gb~>) zID-xfGsC|hn|!@gG`2jy9GHrZ5ik|B9M_xHwWbqBCa%6aKU+RIj0+tv zS~OvK#;f^t*K1Vt$ptqqoproMLSHL73QKdXBy?KkSwCEgD%uOOZB#uzt@CB|6;B_j z>SM1?mz2F>J33uW*U}Z+wmY_)ohZA>uESZ+w$lw|zev~9H9JUG(p9@{2io4t;AJmR@7g|5U2Qwul5jS5J6+fI7K$b?*B^Gym(vvm#N%kCu@EWomq3c>6awm HD*E*gL}ZXP literal 0 HcmV?d00001 diff --git a/_static/locales/sr/LC_MESSAGES/booktheme.po b/_static/locales/sr/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..773b8ada --- /dev/null +++ b/_static/locales/sr/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sr\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Испис у ПДФ" + +msgid "Theme by the" +msgstr "Тхеме би" + +msgid "Download source file" +msgstr "Преузми изворну датотеку" + +msgid "open issue" +msgstr "отворено издање" + +msgid "Contents" +msgstr "Садржај" + +msgid "previous page" +msgstr "Претходна страница" + +msgid "Download notebook file" +msgstr "Преузмите датотеку бележнице" + +msgid "Copyright" +msgstr "Ауторско право" + +msgid "Download this page" +msgstr "Преузмите ову страницу" + +msgid "Source repository" +msgstr "Изворно спремиште" + +msgid "By" +msgstr "Од стране" + +msgid "repository" +msgstr "спремиште" + +msgid "Last updated on" +msgstr "Последње ажурирање" + +msgid "Toggle navigation" +msgstr "Укључи / искључи навигацију" + +msgid "Sphinx Book Theme" +msgstr "Тема књиге Спхинк" + +msgid "suggest edit" +msgstr "предложи уређивање" + +msgid "Open an issue" +msgstr "Отворите издање" + +msgid "Launch" +msgstr "Лансирање" + +msgid "Fullscreen mode" +msgstr "Режим целог екрана" + +msgid "Edit this page" +msgstr "Уредите ову страницу" + +msgid "By the" +msgstr "Од" + +msgid "next page" +msgstr "Следећа страна" diff --git a/_static/locales/sv/LC_MESSAGES/booktheme.mo b/_static/locales/sv/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..b07dc76ff21128244172d2e415cc899555d8b49d GIT binary patch literal 1365 zcmZ9Ky>App7{XZ}|d=zQVMY>d0>TJUwK!GS|siLHd(&c$~H~3(*Gryg$_j%@>d3o;WBZ2ZE>JsWR z)Jv%M7to-bct;3);v|}P!BgM~@H}`DTmmnGm%$If0eB9)11^FDo&i(GpFxiE5Ihb3 z0-geY1>Xk`IzH{jUv&LfAnW}L_P`@Y+Wm_l_m@D9a|Qez{0hWU@h8Z7e}laLACT8A z9Bq9sg6#KG@FQ>;^|ue&MB7Xc{&_$WV4fmrpPUX_NMBC1d<&HLVI2>ISM)cNT zDs_}z6(rVjoe=u}?s{cR90ejPCoU&(OT{EBpQ}W+2Kkatlh7xu)KFSXs3tL$x9(u73Q%I)?{Lst}rq*YU0sH7ocX*ad*9P6|q zKG0OVs2vT8zb&|U%F`w^(-Z1 zKF^i36kcC+hKrsX9@jHt-W)0~UWJ0RHRwJIJFG|WNq7Z50sn;0!@U&o7(5PV;9F4M{{RobKj41& z@a;;?!xtbeX@>OX{(5y6M3y47A9wJS8l@l7I~meb8I-3U@UzelnM(bH_d|LjeI~u4 zB&Ck5^3z4%s2P{8W=Y&H)T}#g2QKPq>k6~t+?)DDGB7*axf^C(bKPdqPja0`u~Boq zq#)vWxe(=r9;UshFg@+8T8M_W+gC58#_GuGB+rLNEoOcl%M6n_~Kv<@xsE9lI>D`3aM?=WN&Y5*v5);gzIlEkrgR(mY~Bt;NAGiw5m^ zmz~Tz+NOS)Pd_uI!*qJT)%&LPp{J%=sw%gu@~f)+wA%QnDo0iMT~%)Q%}sWAT~-@s zt8&XvWPPzJFLmFFj3kCLZVZKXbJg6qObpgpYXhKc{dPQvXD4*l1`&-oR|ZVWnD5S zLMPGk+4yL_MW)wWJ7GI+sWh)Cq}dE7ao%TGqX8uPK%$P%oUIVNaozG6uhIA~XTs-( z77E8j3VKIkNhd=@QrBItuMs9x^kr3kK4HautE;{2cexG}GQN=#P4;o6q{&7}8xZ++ zl w$ZZQ&WaeX;?9mtGBq&}escqTfGyJc(*W8(47(T)#0?{xcP9tpFr||Or2L57y?*IS* literal 0 HcmV?d00001 diff --git a/_static/locales/ta/LC_MESSAGES/booktheme.po b/_static/locales/ta/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..b48bdfaf --- /dev/null +++ b/_static/locales/ta/LC_MESSAGES/booktheme.po @@ -0,0 +1,66 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ta\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "PDF இல் அச்சிடுக" + +msgid "Theme by the" +msgstr "வழங்கிய தீம்" + +msgid "Download source file" +msgstr "மூல கோப்பைப் பதிவிறக்குக" + +msgid "open issue" +msgstr "திறந்த பிரச்சினை" + +msgid "previous page" +msgstr "முந்தைய பக்கம்" + +msgid "Download notebook file" +msgstr "நோட்புக் கோப்பைப் பதிவிறக்கவும்" + +msgid "Copyright" +msgstr "பதிப்புரிமை" + +msgid "Download this page" +msgstr "இந்தப் பக்கத்தைப் பதிவிறக்கவும்" + +msgid "Source repository" +msgstr "மூல களஞ்சியம்" + +msgid "By" +msgstr "வழங்கியவர்" + +msgid "Last updated on" +msgstr "கடைசியாக புதுப்பிக்கப்பட்டது" + +msgid "Toggle navigation" +msgstr "வழிசெலுத்தலை நிலைமாற்று" + +msgid "Sphinx Book Theme" +msgstr "ஸ்பிங்க்ஸ் புத்தக தீம்" + +msgid "suggest edit" +msgstr "திருத்த பரிந்துரைக்கவும்" + +msgid "Open an issue" +msgstr "சிக்கலைத் திறக்கவும்" + +msgid "Launch" +msgstr "தொடங்க" + +msgid "Edit this page" +msgstr "இந்தப் பக்கத்தைத் திருத்தவும்" + +msgid "By the" +msgstr "மூலம்" + +msgid "next page" +msgstr "அடுத்த பக்கம்" diff --git a/_static/locales/te/LC_MESSAGES/booktheme.mo b/_static/locales/te/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..0a5f4b46adfda1551ae6791c3c3782525b61be04 GIT binary patch literal 1806 zcmbu8?`s@I7{^DgzpiR+74e1QD2kPOYU&G1LO_}((2{DPsaEjK=5D&TdYxHz_mbva zT2L$M3z1kXg(AcfwAS4~Neb5f0lujqQV?VieD5FN3qLcn=UrpK7cRH^*?DH3U*CQ1 zw_V$o1=qvek8yv`{W$mAxAEY*0dI#t!Motk@Lu>Ud<6aho$p_87u?C=2jJ6i2YeYi zzX^ChJOuB9$KXz=YA)3F59{^k(B)Z$4Y&rK|263Re}o(GCUki}y(4f1KFWF>z6o!@ z*Wm7LLQKL1xEEf7ufjj!vvA~2A@;zx;Pdc3_zYZw?)**o1l&$Dhu|Lg6r6|7{snaU zU4^f}Um%kFbGaHHtXJD1WeGz1>mHu2N2iC=&RtGZchR1B$iD?W+^g&V?%L)waXOPu z(25ZI7x~Geqr`+s7qcYp6yktc&|MR?r8b3{Gv-}+Jn5=|IXAtmr8XIhPLj(sij|mb zCj}Av%jqaDWG`(;g=$Nq#dOrut&Vs-Ra!<`CVAddVkS#8PDaigm=Z@q{7j`LPYRPQ ziX&+!(I@48SIcZiolwF*xU=VM^?@zFv*l@L zDz6jwvaMLG-4f{crQm*REN}ghN#a8coKPu>p z%YTFt$m|qAXTDh&g5gT~hljsJ*ry=A+<9Nb1sA(o5-xGw{Z;?6OlS@gI#jemLQG%z zrpf6>XY=H3-bW;Qrf>v2>%ZN4n4aM|U<|2-ZBn^mBghuhM0)Dv2+@ei()B(V2&(za uuMrF7ToguSy%w`N&3+IHSt#2LVBfiP)B5iT;9Jx)h5&elIS4O(ZT|-CPABOA literal 0 HcmV?d00001 diff --git a/_static/locales/te/LC_MESSAGES/booktheme.po b/_static/locales/te/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..952278f5 --- /dev/null +++ b/_static/locales/te/LC_MESSAGES/booktheme.po @@ -0,0 +1,66 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: te\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "PDF కి ముద్రించండి" + +msgid "Theme by the" +msgstr "ద్వారా థీమ్" + +msgid "Download source file" +msgstr "మూల ఫైల్‌ను డౌన్‌లోడ్ చేయండి" + +msgid "open issue" +msgstr "ఓపెన్ ఇష్యూ" + +msgid "previous page" +msgstr "ముందు పేజి" + +msgid "Download notebook file" +msgstr "నోట్బుక్ ఫైల్ను డౌన్లోడ్ చేయండి" + +msgid "Copyright" +msgstr "కాపీరైట్" + +msgid "Download this page" +msgstr "ఈ పేజీని డౌన్‌లోడ్ చేయండి" + +msgid "Source repository" +msgstr "మూల రిపోజిటరీ" + +msgid "By" +msgstr "ద్వారా" + +msgid "Last updated on" +msgstr "చివరిగా నవీకరించబడింది" + +msgid "Toggle navigation" +msgstr "నావిగేషన్‌ను టోగుల్ చేయండి" + +msgid "Sphinx Book Theme" +msgstr "సింహిక పుస్తక థీమ్" + +msgid "suggest edit" +msgstr "సవరించమని సూచించండి" + +msgid "Open an issue" +msgstr "సమస్యను తెరవండి" + +msgid "Launch" +msgstr "ప్రారంభించండి" + +msgid "Edit this page" +msgstr "ఈ పేజీని సవరించండి" + +msgid "By the" +msgstr "ద్వారా" + +msgid "next page" +msgstr "తరువాతి పేజీ" diff --git a/_static/locales/tg/LC_MESSAGES/booktheme.mo b/_static/locales/tg/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..b21c6c6340194fdf35f7e5660deb42479c8dbff9 GIT binary patch literal 1628 zcmaiyO^6gn6vxZY=tNE8S5Q|hA#9RE$8XSGCI@vF1jR*HLCB?drtIlBTh(+|t9#pZ z_b^Dr#19Y@K@`-J?Yg?{x;qOwd8{6D@{o&%oP^*d#K?f}Wpw_pnH1Q&v@ z3%&tK*FWF}u!PNBU}wRfz%8&Zfe!dP_zn0sxE@@yD9?KJ9kAteKMU^WF zJC>CiI~?GEE4d#GJ20M-!R?)~ z>>S<1-6l7a<}oHySZKVs&CQhc{Mbyqb88w7X3RqzI{&F#*USvhMoiLrM6s>Hk4E|6 zc@o%qM9F2t?V4KSrinZf?58}t0JXzb84{b#Mr}$-{y{=+V#Xn)X(lNzTPtR6wl32O zGdJL5Bs-5oxB+T`zIGRrAt`^lPLZT?M?g!0angPB{%GR5vxHp0oR8Arqi zbZiRp&%w__8!lf*NbDpe;WA2%r?Xi$atSF8VXr;q_FB@_W_A(5kPfr&0p+;^8?eY= pg1vVOUqyoB&tBYSn9xh&7BjPW`v%MukJU629MMs5Ow+8v{s(GpYQg{j literal 0 HcmV?d00001 diff --git a/_static/locales/tg/LC_MESSAGES/booktheme.po b/_static/locales/tg/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..c33dc421 --- /dev/null +++ b/_static/locales/tg/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "Чоп ба PDF" + +msgid "Theme by the" +msgstr "Мавзӯъи аз" + +msgid "Download source file" +msgstr "Файли манбаъро зеркашӣ кунед" + +msgid "open issue" +msgstr "барориши кушод" + +msgid "Contents" +msgstr "Мундариҷа" + +msgid "previous page" +msgstr "саҳифаи қаблӣ" + +msgid "Download notebook file" +msgstr "Файли дафтарро зеркашӣ кунед" + +msgid "Copyright" +msgstr "Ҳуқуқи муаллиф" + +msgid "Download this page" +msgstr "Ин саҳифаро зеркашӣ кунед" + +msgid "Source repository" +msgstr "Анбори манбаъ" + +msgid "By" +msgstr "Бо" + +msgid "repository" +msgstr "анбор" + +msgid "Last updated on" +msgstr "Last навсозӣ дар" + +msgid "Toggle navigation" +msgstr "Гузаришро иваз кунед" + +msgid "Sphinx Book Theme" +msgstr "Сфинкс Мавзӯи китоб" + +msgid "suggest edit" +msgstr "пешниҳод вироиш" + +msgid "Open an issue" +msgstr "Масъаларо кушоед" + +msgid "Launch" +msgstr "Оғоз" + +msgid "Fullscreen mode" +msgstr "Ҳолати экрани пурра" + +msgid "Edit this page" +msgstr "Ин саҳифаро таҳрир кунед" + +msgid "By the" +msgstr "Бо" + +msgid "next page" +msgstr "саҳифаи оянда" diff --git a/_static/locales/th/LC_MESSAGES/booktheme.mo b/_static/locales/th/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..abede98aa11b163e580a26b545980ace31e61ccf GIT binary patch literal 1766 zcma)*-)|K~6vqcarB^@&)CU_K663GrYB9uM>wQ7mgal$EMW46#4trN`XEwWgD~&H; zNI=2(Qi7!k28|(VOaz2Z{{sC3d@_d21Bp*Q8{hn#*{fZQQ8%6a%*>u2-*e9G?VVdL zD4xeyEM|9;NtGW4!Kz+u&BX3y#5Y_$YiD?uH$>6TSg=Km#9y)rhB| z#94;h;VRq)zl0CNTOLHf&S01Tf9_gR-TKX!nk)j@8 z$!wbssp1UphqNWmR~=a5Pgi}TUURlGwkp}=OGTFUD|OJlYX>grY3nL8@7z23cs4K_ z*QFa4UGulgs-KlQPg0|%ds#*3KaVrR!JzCG##p`JdPW^i%1RIOUQ(H!c9!$dcKhn} z9D~H_tSpB{%@&y@h|{wNXVlR;Utw}rW|b?J)X}`3*%SJJXq)Ss1*76y&(}50xilRZ zZIi_;O{$C})|{wnbx!isN%F!hW^Oo=-3VU})6}5SPzh4p+ooH!5B1t_nxZ7yq^|R~ zC4W0+ZXG#vWP0QK-WMiXqsF%9mU1(xD+Iil50cDI>25zMN>g=?&CRs;Z`c)yEsvX` zJ#D+Lm)Ueu@1M`A*5SmaL;6aLert9xERsQc#uW?Yq_%lHmYtWTbiM67YxSOv-uv8C zONI6KgI^B*v*yl!75w$!KM(#=@YjO>NCp2z@ZSZGG2hr+4E__@te@u_{+M44euZ<4 z_;qwx4(q3b|5Wzei|3W#eYCFwuf#yNf&j$Yu0#;+cXcn64J%wUT=~$4O>SO5=h=^

cLPeiV0|6qlnFzL#U0qn`*`iT?nxl@xb2Mx-{rpyeF$L|PmGL73Xj zjT&US*r9DL+Oc6=XyNi4J`IP)4~3RpiSp}N5WkMWZ=`O(hjnrBo?i;ppCMASYj{fI qV*6MBqwc03(drtRAFXAoSBd=B?a4S*sk|OB^ZqtY{YJQZ;_45RC*i9A literal 0 HcmV?d00001 diff --git a/_static/locales/th/LC_MESSAGES/booktheme.po b/_static/locales/th/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..9d24294a --- /dev/null +++ b/_static/locales/th/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: th\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "พิมพ์เป็น PDF" + +msgid "Theme by the" +msgstr "ธีมโดย" + +msgid "Download source file" +msgstr "ดาวน์โหลดไฟล์ต้นฉบับ" + +msgid "open issue" +msgstr "เปิดปัญหา" + +msgid "Contents" +msgstr "สารบัญ" + +msgid "previous page" +msgstr "หน้าที่แล้ว" + +msgid "Download notebook file" +msgstr "ดาวน์โหลดไฟล์สมุดบันทึก" + +msgid "Copyright" +msgstr "ลิขสิทธิ์" + +msgid "Download this page" +msgstr "ดาวน์โหลดหน้านี้" + +msgid "Source repository" +msgstr "ที่เก็บซอร์ส" + +msgid "By" +msgstr "โดย" + +msgid "repository" +msgstr "ที่เก็บ" + +msgid "Last updated on" +msgstr "ปรับปรุงล่าสุดเมื่อ" + +msgid "Toggle navigation" +msgstr "ไม่ต้องสลับช่องทาง" + +msgid "Sphinx Book Theme" +msgstr "ธีมหนังสือสฟิงซ์" + +msgid "suggest edit" +msgstr "แนะนำแก้ไข" + +msgid "Open an issue" +msgstr "เปิดปัญหา" + +msgid "Launch" +msgstr "เปิด" + +msgid "Fullscreen mode" +msgstr "โหมดเต็มหน้าจอ" + +msgid "Edit this page" +msgstr "แก้ไขหน้านี้" + +msgid "By the" +msgstr "โดย" + +msgid "next page" +msgstr "หน้าต่อไป" diff --git a/_static/locales/tl/LC_MESSAGES/booktheme.mo b/_static/locales/tl/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..8df1b73310e0c606251d1abff7e6033d1f6b273f GIT binary patch literal 1273 zcmZ{iJ#P~+7{?8ixA4}MHz7bWh@lJz6qYJggw!_(YD=U9)PcpxxsJ)jKAr8h8TbH< zl>mt^fEW=h3@|dWP{DwN#01}fk%9knmnKyup2YV%`|Ricw;%r;A9>CYr_e5-eL%a2 z_Gk|th%ew?a0@&DeghAKKfp8KZ;;mh1;@cLOg;`?0Z)LpKw38o9s}=zN5K_v43vGY z_s5_1`!7J!c@37pw;-+m2-5n`;Ct{ph(FuhSLAyJ(z;h52j75~!7cDS_y;@-j*b-m zC%}W~-v&p)J0SUA0Z)SpJPAGlY2GGy4txoc|92qy`UKMYuOOYrFAzsE2s#`3PH_Yc zHrRgZAP%9?9w{GbQ&0{H+8gOp(7q^W|Kx>&wCSAbj3LR`Ob>tV+mg-Nw3lhs_H53s zo5YHk8|!7$+74gUi5w0)8?u(%HR#*g@l+_u=40)Val5-HoaZ5pg_kk6hAoOEtD7`fpKHxt1^q`P0PmGs4|~w zYF}CuMg<%mawMf%5;BoQ3pVSzGB;`7b(Ndbym+ll7=Ee3C$CPI*s^AIft_~oQ`+M| zjoMMlC845tP)?QC3^N9mW&fLyY9mxPB*L)jFaumd3$>sZlm_4E_)y1P<99=X&7mSu zQF#bj7^^11I1!U-GjxO_E86t}@}&6i_@% literal 0 HcmV?d00001 diff --git a/_static/locales/tl/LC_MESSAGES/booktheme.po b/_static/locales/tl/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..20e0d07c --- /dev/null +++ b/_static/locales/tl/LC_MESSAGES/booktheme.po @@ -0,0 +1,66 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "I-print sa PDF" + +msgid "Theme by the" +msgstr "Tema ng" + +msgid "Download source file" +msgstr "Mag-download ng file ng pinagmulan" + +msgid "open issue" +msgstr "bukas na isyu" + +msgid "previous page" +msgstr "Nakaraang pahina" + +msgid "Download notebook file" +msgstr "Mag-download ng file ng notebook" + +msgid "Copyright" +msgstr "Copyright" + +msgid "Download this page" +msgstr "I-download ang pahinang ito" + +msgid "Source repository" +msgstr "Pinagmulan ng imbakan" + +msgid "By" +msgstr "Ni" + +msgid "Last updated on" +msgstr "Huling na-update noong" + +msgid "Toggle navigation" +msgstr "I-toggle ang pag-navigate" + +msgid "Sphinx Book Theme" +msgstr "Tema ng Sphinx Book" + +msgid "suggest edit" +msgstr "iminumungkahi i-edit" + +msgid "Open an issue" +msgstr "Magbukas ng isyu" + +msgid "Launch" +msgstr "Ilunsad" + +msgid "Edit this page" +msgstr "I-edit ang pahinang ito" + +msgid "By the" +msgstr "Sa pamamagitan ng" + +msgid "next page" +msgstr "Susunod na pahina" diff --git a/_static/locales/tr/LC_MESSAGES/booktheme.mo b/_static/locales/tr/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..029ae18afb5360a8c238a052e8d3971761759d3d GIT binary patch literal 1373 zcmZ{izi%8x6vqdWKynFz!~~?sQXUOIiX{o62)3@sVLOWA2n!$dC&=i7J19yL{j6T0W2%?d)gY?96-L@67yl{`g~s z_CESD`XA_*&>y~r7uw0!mBOP=;q?Z120RHafv3P_@ICND@LjMEo(I1M&w>oT4aSc5 zLCNz7d<%R6o&kRZ&w(7D`FN2cjBk&jSbMQ3yvf}|L z^-dgb=PiL35fdohSHUH48x$WIDEhw##oq%^>ihtT&YwW>`D+*d4$8W}!FRxeF7BOZ z>s|syPtwI-fS96gfHHp*lr0wzl2>wx9;q$97n`h;HKI?N=#nP7WUs~N1$3mG*A#z? zP4-{T@J)1V%lv%Rpus~iXZ5ACk!=k4s2XpwJgPPKoh_YC$-2lp&J{E^B_9n3SNjqF zXE5d_P^B|g>#2!IeHd=kWf?}E+0w+NtTuIsR9C5voRYJMYdgx-R~05`OD2Sx)s{CF zNgQphZK&MIp`-&XC zw^i0&m&u0nldwXznunqP*($Z4{f{ku(5I`PtoGDUdp(}*+f>_seb0WLJ~cMw0*C6= zkV`YBTo=V`U#;;tvZvIAMh7gN?Gt7i9EQ538>@@sDR7=_PxgBv?;s7aXZ*rps`o&(U<3tx~U_1rqYg?0^K7|^E%RsJ#t%4f8 zo6h$Ap{&BCl*;`;;xXGI&@B^nMMIv5kwyPFiiuV?c-PnoHwMdQd*;PnG+qT~k=xL= f7*f}zXhDUuwVFPIQ2d!&RZ>YE8iRKH#ZJBgJpfrQ literal 0 HcmV?d00001 diff --git a/_static/locales/tr/LC_MESSAGES/booktheme.po b/_static/locales/tr/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..a77eb027 --- /dev/null +++ b/_static/locales/tr/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: tr\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "PDF olarak yazdır" + +msgid "Theme by the" +msgstr "Tarafından tema" + +msgid "Download source file" +msgstr "Kaynak dosyayı indirin" + +msgid "open issue" +msgstr "Açık konu" + +msgid "Contents" +msgstr "İçindekiler" + +msgid "previous page" +msgstr "önceki sayfa" + +msgid "Download notebook file" +msgstr "Defter dosyasını indirin" + +msgid "Copyright" +msgstr "Telif hakkı" + +msgid "Download this page" +msgstr "Bu sayfayı indirin" + +msgid "Source repository" +msgstr "Kaynak kod deposu" + +msgid "By" +msgstr "Tarafından" + +msgid "repository" +msgstr "depo" + +msgid "Last updated on" +msgstr "Son güncelleme tarihi" + +msgid "Toggle navigation" +msgstr "Gezinmeyi değiştir" + +msgid "Sphinx Book Theme" +msgstr "Sfenks Kitap Teması" + +msgid "suggest edit" +msgstr "düzenleme öner" + +msgid "Open an issue" +msgstr "Bir sorunu açın" + +msgid "Launch" +msgstr "Başlatmak" + +msgid "Fullscreen mode" +msgstr "Tam ekran modu" + +msgid "Edit this page" +msgstr "Bu sayfayı düzenle" + +msgid "By the" +msgstr "Tarafından" + +msgid "next page" +msgstr "sonraki Sayfa" diff --git a/_static/locales/uk/LC_MESSAGES/booktheme.mo b/_static/locales/uk/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..16ab78909cfbaba7fa199f47fdfc2934426ac699 GIT binary patch literal 1681 zcmZvaO>7%Q6vv0QKx#^WmXAw-X;52=V^7yhotb5Kwlue- zPJ@uD1fdWPh|e20*TKPc;zZ)a@r}d@A+B8DUJjM|f4dvvq>McK+j;xuef*#QJbLI0 zf%O{p5cY4_Z(`qj3JD;1Tdg@Fj3P=dZc__x$`9$oc*S3*fo^agnKo4Zexd+ydwLFH++H&9h3nhscvH3nP?w=Ry$GKV8 zSFn*%JcrG*?O#Zh&hS|fa-{PW7iaO4wx+~;Mq8zAjF)gW3jCTCm(0hyZoI10#;R#! zZps@$UG17A`bVb!y$DvicD z(UqEbKZJv)We~@S5))CN5yZ%eOXK2NmM>DFi34k*S#d3_1^TwU$hA$?)Ql48Q%+|+ zO&Q;>E2+I(f$!M>Nwm6cv+4}z$&!STx)qotFS{>%ocO*%l?t7p6!W2~*y81C@dFjb zh*pwW{vziurkM*@FJB$o{eEubY#|r6I5iuplC&t`Oj!2O`(TSv<;z`$dL~;A5u^%qBgBK^s=!h>rLI6)qdpT zRwLUoA{Qc+BL{@CNd#$~fM}{TM=rgzQV%n0sfS7&;BP2WpLe~9L#0ZLy!)G(eLtS} z@uTBCHyGACc;3gei{}G8S6;vi>pu7*_yBwvdd_{ zw7^~PH24qrDR`oXv3~FiknZO|ioXGV2*%(?;Gf{z;NRf8;J+FBUg~@w04eVRNO2|b zJ#Z2H7+e8i$-yFT-pWp-6LJ_r(sdMXnvv>}ceKb;S{N^_PkZu%7R~=ky6bpCK9k3g z$k@3h{CHRvY(#lWzU!1jHmVk6McE}TRVZeZy2@wWis)VkD)Nisnai;32Hdk9!Ny8% zh>H8iNjnI6>?(vD=Y%)au3|&?BFFX~vq4Jm5 zMX&72MShO7Oqazq!O}OM=}4bej#Cj_+Vieshc22(u^4vLDC*N`;`w6URZ%80h#W^i znt)vNS978mS`#JfvhV|x$n#E9i<(+#yWIJS^JCrbgJ(X=jVKuk8Cugzp2+hMT?f31 z?aE=i4%v6}~kli>l;GC(nmw+%Pw3ODBSPc^>(>sY>MA6>D7i z*MdBkUV01)pAYlSw$Ly6$pRnzWH`t4n!cr5?Pa~wuCipkz0CC=x@BmuW3xx+mX7tR z*NZtNFp)tbr@2L4}dj%B? z$~?F1e_~CYdU3r0$=I6uq5ePVO_Bn=P}riFSZ}qf6oE57w5w3K+FoX+hEW?y<4|&p zx|p)Aw=sGx%}Vw#el49X^(ARiaRizwH+vA!fH?=_BQ=JATO9Uo!rm6_g(Z9Fvrf~J ziFzY}!KTjO`w9hS|3mkKY2Z8hBsWpwH*$FgF5fip{lMp#&N|*Vkp4MHrJJsNw1%8D c^9?3>eEmE8GP@z_uy-`khW>?G>aA{%rxd0lq5uE@ literal 0 HcmV?d00001 diff --git a/_static/locales/ur/LC_MESSAGES/booktheme.po b/_static/locales/ur/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..2f774267 --- /dev/null +++ b/_static/locales/ur/LC_MESSAGES/booktheme.po @@ -0,0 +1,66 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ur\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "پی ڈی ایف پرنٹ کریں" + +msgid "Theme by the" +msgstr "کے ذریعہ تھیم" + +msgid "Download source file" +msgstr "سورس فائل ڈاؤن لوڈ کریں" + +msgid "open issue" +msgstr "کھلا مسئلہ" + +msgid "previous page" +msgstr "سابقہ ​​صفحہ" + +msgid "Download notebook file" +msgstr "نوٹ بک فائل ڈاؤن لوڈ کریں" + +msgid "Copyright" +msgstr "کاپی رائٹ" + +msgid "Download this page" +msgstr "اس صفحے کو ڈاؤن لوڈ کریں" + +msgid "Source repository" +msgstr "ماخذ ذخیرہ" + +msgid "By" +msgstr "بذریعہ" + +msgid "Last updated on" +msgstr "آخری بار تازہ کاری ہوئی" + +msgid "Toggle navigation" +msgstr "نیویگیشن ٹوگل کریں" + +msgid "Sphinx Book Theme" +msgstr "سپنکس بک تھیم" + +msgid "suggest edit" +msgstr "ترمیم کی تجویز کریں" + +msgid "Open an issue" +msgstr "ایک مسئلہ کھولیں" + +msgid "Launch" +msgstr "لانچ کریں" + +msgid "Edit this page" +msgstr "اس صفحے میں ترمیم کریں" + +msgid "By the" +msgstr "کی طرف" + +msgid "next page" +msgstr "اگلا صفحہ" diff --git a/_static/locales/vi/LC_MESSAGES/booktheme.mo b/_static/locales/vi/LC_MESSAGES/booktheme.mo new file mode 100644 index 0000000000000000000000000000000000000000..2bb32555c3ea0dab08ed37b71cb863fbe75698c6 GIT binary patch literal 1431 zcmZvb&x;&I6vr#s{2bR9catc(#OK8%htWiG2(!#(H#@MntBVvV&v#)!JFr^_{KP>F`@nJV05}OA1gF4b;9KAkunA6pAA*NK z3BCmSiq}An^CkEqxCxGf--9oMKUe&tTK}_}KL%Ov30MQi#>)GLK%P&59Onf13wRdX z3;qSN-ajCp`xj*0y?e@hC&AY-KMlSLE>x7&{%7EEtZ#xGrw?+zzkx4+4=O$aInLi8 z=P?fP6X0=>=PmFs_%X6t9{djXqq7H;REU`#e&m%Dv(|WNyu(A%OLe5YIB!2Su?;$8te4By zUZxct%bjIsvow_dS@cRfN`gp=xsLV-{cPIG;@E|$l!jJqM~a2OdCHPb;AMxb!8|je z5+5Wu5E#l0;esOMR|IFK`YgJ+E?Oq}qlDRK7TFmDND~hLNUKno*_5*I#duC ze1pUH?uya95XS7fK6vqb$6da&5d>$e(Tqr%5FL8(*`2r*YiH`^Z>aE(?ll6i#v)Y{nLNAmS zVZLM|@+Cqff{+L(H9>+X*h#n|&YXJarQWrDsNf1G{?EIRgwekJ?VFu>|Np%Cx20*2 zVQfXTBHkmmBW^Fl3uEes3ZOb zQk?;C9XJZE1)qXHfzuJ+M)Utfc@-qRPhbpOu_D~R9;Cb#q&h!?W$*w<>pw>P43chB zQ^;m;Gx8RY{OyX^7V!v3^?n6uod9Y7@6r5Kko@OC(isEk+)qHNR|2Y~glBh97KqDQIoyw}Q#g=trLPD*?? zsWX<#ZNn6-BW-Dv{+f1r*{qv#gpj;Xr3E`?xSD%*+R!4+l|=5zREC|jvA~era$Qfb zF2|B6qIlQgPIfxfbA+v2ODm_JowhTUyu=TZx9*JS6Rh#(J>i+Um1$-Lm&OIlG_(Z~ zDK6>Iog$r3#CF65OL>v)Mde-3GzDA=oCH?XIg!%wqv`lr;kc-l;Guq;^y3ZX*zu#s zI~M-$+r2jyH8$SeZ;J%iFtEqY8kTJ5sf^*cLMP93cgEWm);WfBdxaD4kSUe6q?zDt zJ(i9gGoRpuVl zu3Y;tdw+Y?BAIRa)rh7%Q6vqb|O6z_>OFs^gI=uiz7%1XUIrvhVNR?8ES{E)zXk$;;3!9nM?rdo| zg(?BJNt;NGU78fyR1pmy`2barI!U>5;l_yr7d&hG1XmCT{?EI?hS9$L&6|(+{`20i zd%MaE;~=aX_A~4-Y~m68Ft$C)7(TWgzpda-a2vP}+zxhw2f(Mnr@$<@7d!**1_ihW z)CosHiZc!F0%yUU;1}SN;CBgsOxAx%{5nYa{sdFtmM!u9-5~khAjNqGTmxSL>HHrF z{{ks*S695g10>!1LDKhp!dDaaCwv>+k9`-U`l4+X18A zb`E+6_3&{R%F^mDJ28xp>!M(W-N{d0I-s9&TSG1P{ z75aJczeQbi0`6J1V7&!LBlM=*7rJhc_l1yrNEHO@w*t*WuV86W;7Y;|WxmMX@NmGA z+zEnEumRtZ2%`AF$v$>A&gTnH1&&t!FgxoN9eI(TAZ@v#7!s`Y=Y#Q^a>}+{!KHP< zu`TT&i4+%gtWHs$IEm+r3yumC*&X47(6$9s3cLhT)Vm_D)29mQH-#S{T878@)098m z%A7iV>U3{=|JVyJrINy?bHkpi>0X&v z1xMN$etgi;seVh^A?ljp9~9roy_FhpL*H`KeaasSGF*BsH^{!+!{cf8S;>!N`LUxt zDOTIK)fgH3eSM~5R-avJPKqIR9T5`UTRjZlMYk9ZN|&2 zSsBNyvAEKln_#AN!(3g7N>iJPqMOUL)it`->9il( zoLjEXSEEv;IrB~9#-v%f*7$q_8AyL^bp+y>8T%Uf>ocRKJlP7gdS!Fx->lK(l=-+? P`(Y`Xeqh$BP|E%Rvo4ks literal 0 HcmV?d00001 diff --git a/_static/locales/zh_TW/LC_MESSAGES/booktheme.po b/_static/locales/zh_TW/LC_MESSAGES/booktheme.po new file mode 100644 index 00000000..beecb076 --- /dev/null +++ b/_static/locales/zh_TW/LC_MESSAGES/booktheme.po @@ -0,0 +1,75 @@ + +msgid "" +msgstr "" +"Project-Id-Version: Sphinx-Book-Theme\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_TW\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Print to PDF" +msgstr "列印成 PDF" + +msgid "Theme by the" +msgstr "佈景主題作者:" + +msgid "Download source file" +msgstr "下載原始檔" + +msgid "open issue" +msgstr "公開的問題" + +msgid "Contents" +msgstr "目錄" + +msgid "previous page" +msgstr "上一頁" + +msgid "Download notebook file" +msgstr "下載 Notebook 檔案" + +msgid "Copyright" +msgstr "Copyright" + +msgid "Download this page" +msgstr "下載此頁面" + +msgid "Source repository" +msgstr "來源儲存庫" + +msgid "By" +msgstr "作者:" + +msgid "repository" +msgstr "儲存庫" + +msgid "Last updated on" +msgstr "最後更新時間:" + +msgid "Toggle navigation" +msgstr "顯示或隱藏導覽列" + +msgid "Sphinx Book Theme" +msgstr "Sphinx Book 佈景主題" + +msgid "suggest edit" +msgstr "提出修改建議" + +msgid "Open an issue" +msgstr "開啟議題" + +msgid "Launch" +msgstr "啟動" + +msgid "Fullscreen mode" +msgstr "全螢幕模式" + +msgid "Edit this page" +msgstr "編輯此頁面" + +msgid "By the" +msgstr "作者:" + +msgid "next page" +msgstr "下一頁" diff --git a/_static/minus.png b/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d96755fdaf8bb2214971e0db9c1fd3077d7c419d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK literal 0 HcmV?d00001 diff --git a/_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css b/_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css new file mode 100644 index 00000000..33566310 --- /dev/null +++ b/_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css @@ -0,0 +1,2342 @@ +/* Variables */ +:root { + --mystnb-source-bg-color: #f7f7f7; + --mystnb-stdout-bg-color: #fcfcfc; + --mystnb-stderr-bg-color: #fdd; + --mystnb-traceback-bg-color: #fcfcfc; + --mystnb-source-border-color: #ccc; + --mystnb-source-margin-color: green; + --mystnb-stdout-border-color: #f7f7f7; + --mystnb-stderr-border-color: #f7f7f7; + --mystnb-traceback-border-color: #ffd6d6; + --mystnb-hide-prompt-opacity: 70%; + --mystnb-source-border-radius: .4em; + --mystnb-source-border-width: 1px; +} + +/* Whole cell */ +div.container.cell { + padding-left: 0; + margin-bottom: 1em; +} + +/* Removing all background formatting so we can control at the div level */ +.cell_input div.highlight, +.cell_output pre, +.cell_input pre, +.cell_output .output { + border: none; + box-shadow: none; +} + +.cell_output .output pre, +.cell_input pre { + margin: 0px; +} + +/* Input cells */ +div.cell div.cell_input, +div.cell details.above-input>summary { + padding-left: 0em; + padding-right: 0em; + border: var(--mystnb-source-border-width) var(--mystnb-source-border-color) solid; + background-color: var(--mystnb-source-bg-color); + border-left-color: var(--mystnb-source-margin-color); + border-left-width: medium; + border-radius: var(--mystnb-source-border-radius); +} + +div.cell_input>div, +div.cell_output div.output>div.highlight { + margin: 0em !important; + border: none !important; +} + +/* All cell outputs */ +.cell_output { + padding-left: 1em; + padding-right: 0em; + margin-top: 1em; +} + +/* Text outputs from cells */ +.cell_output .output.text_plain, +.cell_output .output.traceback, +.cell_output .output.stream, +.cell_output .output.stderr { + margin-top: 1em; + margin-bottom: 0em; + box-shadow: none; +} + +.cell_output .output.text_plain, +.cell_output .output.stream { + background: var(--mystnb-stdout-bg-color); + border: 1px solid var(--mystnb-stdout-border-color); +} + +.cell_output .output.stderr { + background: var(--mystnb-stderr-bg-color); + border: 1px solid var(--mystnb-stderr-border-color); +} + +.cell_output .output.traceback { + background: var(--mystnb-traceback-bg-color); + border: 1px solid var(--mystnb-traceback-border-color); +} + +/* Collapsible cell content */ +div.cell details.above-input div.cell_input { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-top: var(--mystnb-source-border-width) var(--mystnb-source-border-color) dashed; +} + +div.cell div.cell_input.above-output-prompt { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +div.cell details.above-input>summary { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom: var(--mystnb-source-border-width) var(--mystnb-source-border-color) dashed; + padding-left: 1em; + margin-bottom: 0; +} + +div.cell details.above-output>summary { + background-color: var(--mystnb-source-bg-color); + padding-left: 1em; + padding-right: 0em; + border: var(--mystnb-source-border-width) var(--mystnb-source-border-color) solid; + border-radius: var(--mystnb-source-border-radius); + border-left-color: var(--mystnb-source-margin-color); + border-left-width: medium; +} + +div.cell details.below-input>summary { + background-color: var(--mystnb-source-bg-color); + padding-left: 1em; + padding-right: 0em; + border: var(--mystnb-source-border-width) var(--mystnb-source-border-color) solid; + border-top: none; + border-bottom-left-radius: var(--mystnb-source-border-radius); + border-bottom-right-radius: var(--mystnb-source-border-radius); + border-left-color: var(--mystnb-source-margin-color); + border-left-width: medium; +} + +div.cell details.hide>summary>span { + opacity: var(--mystnb-hide-prompt-opacity); +} + +div.cell details.hide[open]>summary>span.collapsed { + display: none; +} + +div.cell details.hide:not([open])>summary>span.expanded { + display: none; +} + +@keyframes collapsed-fade-in { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} +div.cell details.hide[open]>summary~* { + -moz-animation: collapsed-fade-in 0.3s ease-in-out; + -webkit-animation: collapsed-fade-in 0.3s ease-in-out; + animation: collapsed-fade-in 0.3s ease-in-out; +} + +/* Math align to the left */ +.cell_output .MathJax_Display { + text-align: left !important; +} + +/* Pandas tables. Pulled from the Jupyter / nbsphinx CSS */ +div.cell_output table { + border: none; + border-collapse: collapse; + border-spacing: 0; + color: black; + font-size: 1em; + table-layout: fixed; +} + +div.cell_output thead { + border-bottom: 1px solid black; + vertical-align: bottom; +} + +div.cell_output tr, +div.cell_output th, +div.cell_output td { + text-align: right; + vertical-align: middle; + padding: 0.5em 0.5em; + line-height: normal; + white-space: normal; + max-width: none; + border: none; +} + +div.cell_output th { + font-weight: bold; +} + +div.cell_output tbody tr:nth-child(odd) { + background: #f5f5f5; +} + +div.cell_output tbody tr:hover { + background: rgba(66, 165, 245, 0.2); +} + +/** source code line numbers **/ +span.linenos { + opacity: 0.5; +} + +/* Inline text from `paste` operation */ + +span.pasted-text { + font-weight: bold; +} + +span.pasted-inline img { + max-height: 2em; +} + +tbody span.pasted-inline img { + max-height: none; +} + +/* Font colors for translated ANSI escape sequences +Color values are copied from Jupyter Notebook +https://github.com/jupyter/notebook/blob/52581f8eda9b319eb0390ac77fe5903c38f81e3e/notebook/static/notebook/less/ansicolors.less#L14-L21 +Background colors from +https://nbsphinx.readthedocs.io/en/latest/code-cells.html#ANSI-Colors +*/ +div.highlight .-Color-Bold { + font-weight: bold; +} + +div.highlight .-Color[class*=-Black] { + color: #3E424D +} + +div.highlight .-Color[class*=-Red] { + color: #E75C58 +} + +div.highlight .-Color[class*=-Green] { + color: #00A250 +} + +div.highlight .-Color[class*=-Yellow] { + color: #DDB62B +} + +div.highlight .-Color[class*=-Blue] { + color: #208FFB +} + +div.highlight .-Color[class*=-Magenta] { + color: #D160C4 +} + +div.highlight .-Color[class*=-Cyan] { + color: #60C6C8 +} + +div.highlight .-Color[class*=-White] { + color: #C5C1B4 +} + +div.highlight .-Color[class*=-BGBlack] { + background-color: #3E424D +} + +div.highlight .-Color[class*=-BGRed] { + background-color: #E75C58 +} + +div.highlight .-Color[class*=-BGGreen] { + background-color: #00A250 +} + +div.highlight .-Color[class*=-BGYellow] { + background-color: #DDB62B +} + +div.highlight .-Color[class*=-BGBlue] { + background-color: #208FFB +} + +div.highlight .-Color[class*=-BGMagenta] { + background-color: #D160C4 +} + +div.highlight .-Color[class*=-BGCyan] { + background-color: #60C6C8 +} + +div.highlight .-Color[class*=-BGWhite] { + background-color: #C5C1B4 +} + +/* Font colors for 8-bit ANSI */ + +div.highlight .-Color[class*=-C0] { + color: #000000 +} + +div.highlight .-Color[class*=-BGC0] { + background-color: #000000 +} + +div.highlight .-Color[class*=-C1] { + color: #800000 +} + +div.highlight .-Color[class*=-BGC1] { + background-color: #800000 +} + +div.highlight .-Color[class*=-C2] { + color: #008000 +} + +div.highlight .-Color[class*=-BGC2] { + background-color: #008000 +} + +div.highlight .-Color[class*=-C3] { + color: #808000 +} + +div.highlight .-Color[class*=-BGC3] { + background-color: #808000 +} + +div.highlight .-Color[class*=-C4] { + color: #000080 +} + +div.highlight .-Color[class*=-BGC4] { + background-color: #000080 +} + +div.highlight .-Color[class*=-C5] { + color: #800080 +} + +div.highlight .-Color[class*=-BGC5] { + background-color: #800080 +} + +div.highlight .-Color[class*=-C6] { + color: #008080 +} + +div.highlight .-Color[class*=-BGC6] { + background-color: #008080 +} + +div.highlight .-Color[class*=-C7] { + color: #C0C0C0 +} + +div.highlight .-Color[class*=-BGC7] { + background-color: #C0C0C0 +} + +div.highlight .-Color[class*=-C8] { + color: #808080 +} + +div.highlight .-Color[class*=-BGC8] { + background-color: #808080 +} + +div.highlight .-Color[class*=-C9] { + color: #FF0000 +} + +div.highlight .-Color[class*=-BGC9] { + background-color: #FF0000 +} + +div.highlight .-Color[class*=-C10] { + color: #00FF00 +} + +div.highlight .-Color[class*=-BGC10] { + background-color: #00FF00 +} + +div.highlight .-Color[class*=-C11] { + color: #FFFF00 +} + +div.highlight .-Color[class*=-BGC11] { + background-color: #FFFF00 +} + +div.highlight .-Color[class*=-C12] { + color: #0000FF +} + +div.highlight .-Color[class*=-BGC12] { + background-color: #0000FF +} + +div.highlight .-Color[class*=-C13] { + color: #FF00FF +} + +div.highlight .-Color[class*=-BGC13] { + background-color: #FF00FF +} + +div.highlight .-Color[class*=-C14] { + color: #00FFFF +} + +div.highlight .-Color[class*=-BGC14] { + background-color: #00FFFF +} + +div.highlight .-Color[class*=-C15] { + color: #FFFFFF +} + +div.highlight .-Color[class*=-BGC15] { + background-color: #FFFFFF +} + +div.highlight .-Color[class*=-C16] { + color: #000000 +} + +div.highlight .-Color[class*=-BGC16] { + background-color: #000000 +} + +div.highlight .-Color[class*=-C17] { + color: #00005F +} + +div.highlight .-Color[class*=-BGC17] { + background-color: #00005F +} + +div.highlight .-Color[class*=-C18] { + color: #000087 +} + +div.highlight .-Color[class*=-BGC18] { + background-color: #000087 +} + +div.highlight .-Color[class*=-C19] { + color: #0000AF +} + +div.highlight .-Color[class*=-BGC19] { + background-color: #0000AF +} + +div.highlight .-Color[class*=-C20] { + color: #0000D7 +} + +div.highlight .-Color[class*=-BGC20] { + background-color: #0000D7 +} + +div.highlight .-Color[class*=-C21] { + color: #0000FF +} + +div.highlight .-Color[class*=-BGC21] { + background-color: #0000FF +} + +div.highlight .-Color[class*=-C22] { + color: #005F00 +} + +div.highlight .-Color[class*=-BGC22] { + background-color: #005F00 +} + +div.highlight .-Color[class*=-C23] { + color: #005F5F +} + +div.highlight .-Color[class*=-BGC23] { + background-color: #005F5F +} + +div.highlight .-Color[class*=-C24] { + color: #005F87 +} + +div.highlight .-Color[class*=-BGC24] { + background-color: #005F87 +} + +div.highlight .-Color[class*=-C25] { + color: #005FAF +} + +div.highlight .-Color[class*=-BGC25] { + background-color: #005FAF +} + +div.highlight .-Color[class*=-C26] { + color: #005FD7 +} + +div.highlight .-Color[class*=-BGC26] { + background-color: #005FD7 +} + +div.highlight .-Color[class*=-C27] { + color: #005FFF +} + +div.highlight .-Color[class*=-BGC27] { + background-color: #005FFF +} + +div.highlight .-Color[class*=-C28] { + color: #008700 +} + +div.highlight .-Color[class*=-BGC28] { + background-color: #008700 +} + +div.highlight .-Color[class*=-C29] { + color: #00875F +} + +div.highlight .-Color[class*=-BGC29] { + background-color: #00875F +} + +div.highlight .-Color[class*=-C30] { + color: #008787 +} + +div.highlight .-Color[class*=-BGC30] { + background-color: #008787 +} + +div.highlight .-Color[class*=-C31] { + color: #0087AF +} + +div.highlight .-Color[class*=-BGC31] { + background-color: #0087AF +} + +div.highlight .-Color[class*=-C32] { + color: #0087D7 +} + +div.highlight .-Color[class*=-BGC32] { + background-color: #0087D7 +} + +div.highlight .-Color[class*=-C33] { + color: #0087FF +} + +div.highlight .-Color[class*=-BGC33] { + background-color: #0087FF +} + +div.highlight .-Color[class*=-C34] { + color: #00AF00 +} + +div.highlight .-Color[class*=-BGC34] { + background-color: #00AF00 +} + +div.highlight .-Color[class*=-C35] { + color: #00AF5F +} + +div.highlight .-Color[class*=-BGC35] { + background-color: #00AF5F +} + +div.highlight .-Color[class*=-C36] { + color: #00AF87 +} + +div.highlight .-Color[class*=-BGC36] { + background-color: #00AF87 +} + +div.highlight .-Color[class*=-C37] { + color: #00AFAF +} + +div.highlight .-Color[class*=-BGC37] { + background-color: #00AFAF +} + +div.highlight .-Color[class*=-C38] { + color: #00AFD7 +} + +div.highlight .-Color[class*=-BGC38] { + background-color: #00AFD7 +} + +div.highlight .-Color[class*=-C39] { + color: #00AFFF +} + +div.highlight .-Color[class*=-BGC39] { + background-color: #00AFFF +} + +div.highlight .-Color[class*=-C40] { + color: #00D700 +} + +div.highlight .-Color[class*=-BGC40] { + background-color: #00D700 +} + +div.highlight .-Color[class*=-C41] { + color: #00D75F +} + +div.highlight .-Color[class*=-BGC41] { + background-color: #00D75F +} + +div.highlight .-Color[class*=-C42] { + color: #00D787 +} + +div.highlight .-Color[class*=-BGC42] { + background-color: #00D787 +} + +div.highlight .-Color[class*=-C43] { + color: #00D7AF +} + +div.highlight .-Color[class*=-BGC43] { + background-color: #00D7AF +} + +div.highlight .-Color[class*=-C44] { + color: #00D7D7 +} + +div.highlight .-Color[class*=-BGC44] { + background-color: #00D7D7 +} + +div.highlight .-Color[class*=-C45] { + color: #00D7FF +} + +div.highlight .-Color[class*=-BGC45] { + background-color: #00D7FF +} + +div.highlight .-Color[class*=-C46] { + color: #00FF00 +} + +div.highlight .-Color[class*=-BGC46] { + background-color: #00FF00 +} + +div.highlight .-Color[class*=-C47] { + color: #00FF5F +} + +div.highlight .-Color[class*=-BGC47] { + background-color: #00FF5F +} + +div.highlight .-Color[class*=-C48] { + color: #00FF87 +} + +div.highlight .-Color[class*=-BGC48] { + background-color: #00FF87 +} + +div.highlight .-Color[class*=-C49] { + color: #00FFAF +} + +div.highlight .-Color[class*=-BGC49] { + background-color: #00FFAF +} + +div.highlight .-Color[class*=-C50] { + color: #00FFD7 +} + +div.highlight .-Color[class*=-BGC50] { + background-color: #00FFD7 +} + +div.highlight .-Color[class*=-C51] { + color: #00FFFF +} + +div.highlight .-Color[class*=-BGC51] { + background-color: #00FFFF +} + +div.highlight .-Color[class*=-C52] { + color: #5F0000 +} + +div.highlight .-Color[class*=-BGC52] { + background-color: #5F0000 +} + +div.highlight .-Color[class*=-C53] { + color: #5F005F +} + +div.highlight .-Color[class*=-BGC53] { + background-color: #5F005F +} + +div.highlight .-Color[class*=-C54] { + color: #5F0087 +} + +div.highlight .-Color[class*=-BGC54] { + background-color: #5F0087 +} + +div.highlight .-Color[class*=-C55] { + color: #5F00AF +} + +div.highlight .-Color[class*=-BGC55] { + background-color: #5F00AF +} + +div.highlight .-Color[class*=-C56] { + color: #5F00D7 +} + +div.highlight .-Color[class*=-BGC56] { + background-color: #5F00D7 +} + +div.highlight .-Color[class*=-C57] { + color: #5F00FF +} + +div.highlight .-Color[class*=-BGC57] { + background-color: #5F00FF +} + +div.highlight .-Color[class*=-C58] { + color: #5F5F00 +} + +div.highlight .-Color[class*=-BGC58] { + background-color: #5F5F00 +} + +div.highlight .-Color[class*=-C59] { + color: #5F5F5F +} + +div.highlight .-Color[class*=-BGC59] { + background-color: #5F5F5F +} + +div.highlight .-Color[class*=-C60] { + color: #5F5F87 +} + +div.highlight .-Color[class*=-BGC60] { + background-color: #5F5F87 +} + +div.highlight .-Color[class*=-C61] { + color: #5F5FAF +} + +div.highlight .-Color[class*=-BGC61] { + background-color: #5F5FAF +} + +div.highlight .-Color[class*=-C62] { + color: #5F5FD7 +} + +div.highlight .-Color[class*=-BGC62] { + background-color: #5F5FD7 +} + +div.highlight .-Color[class*=-C63] { + color: #5F5FFF +} + +div.highlight .-Color[class*=-BGC63] { + background-color: #5F5FFF +} + +div.highlight .-Color[class*=-C64] { + color: #5F8700 +} + +div.highlight .-Color[class*=-BGC64] { + background-color: #5F8700 +} + +div.highlight .-Color[class*=-C65] { + color: #5F875F +} + +div.highlight .-Color[class*=-BGC65] { + background-color: #5F875F +} + +div.highlight .-Color[class*=-C66] { + color: #5F8787 +} + +div.highlight .-Color[class*=-BGC66] { + background-color: #5F8787 +} + +div.highlight .-Color[class*=-C67] { + color: #5F87AF +} + +div.highlight .-Color[class*=-BGC67] { + background-color: #5F87AF +} + +div.highlight .-Color[class*=-C68] { + color: #5F87D7 +} + +div.highlight .-Color[class*=-BGC68] { + background-color: #5F87D7 +} + +div.highlight .-Color[class*=-C69] { + color: #5F87FF +} + +div.highlight .-Color[class*=-BGC69] { + background-color: #5F87FF +} + +div.highlight .-Color[class*=-C70] { + color: #5FAF00 +} + +div.highlight .-Color[class*=-BGC70] { + background-color: #5FAF00 +} + +div.highlight .-Color[class*=-C71] { + color: #5FAF5F +} + +div.highlight .-Color[class*=-BGC71] { + background-color: #5FAF5F +} + +div.highlight .-Color[class*=-C72] { + color: #5FAF87 +} + +div.highlight .-Color[class*=-BGC72] { + background-color: #5FAF87 +} + +div.highlight .-Color[class*=-C73] { + color: #5FAFAF +} + +div.highlight .-Color[class*=-BGC73] { + background-color: #5FAFAF +} + +div.highlight .-Color[class*=-C74] { + color: #5FAFD7 +} + +div.highlight .-Color[class*=-BGC74] { + background-color: #5FAFD7 +} + +div.highlight .-Color[class*=-C75] { + color: #5FAFFF +} + +div.highlight .-Color[class*=-BGC75] { + background-color: #5FAFFF +} + +div.highlight .-Color[class*=-C76] { + color: #5FD700 +} + +div.highlight .-Color[class*=-BGC76] { + background-color: #5FD700 +} + +div.highlight .-Color[class*=-C77] { + color: #5FD75F +} + +div.highlight .-Color[class*=-BGC77] { + background-color: #5FD75F +} + +div.highlight .-Color[class*=-C78] { + color: #5FD787 +} + +div.highlight .-Color[class*=-BGC78] { + background-color: #5FD787 +} + +div.highlight .-Color[class*=-C79] { + color: #5FD7AF +} + +div.highlight .-Color[class*=-BGC79] { + background-color: #5FD7AF +} + +div.highlight .-Color[class*=-C80] { + color: #5FD7D7 +} + +div.highlight .-Color[class*=-BGC80] { + background-color: #5FD7D7 +} + +div.highlight .-Color[class*=-C81] { + color: #5FD7FF +} + +div.highlight .-Color[class*=-BGC81] { + background-color: #5FD7FF +} + +div.highlight .-Color[class*=-C82] { + color: #5FFF00 +} + +div.highlight .-Color[class*=-BGC82] { + background-color: #5FFF00 +} + +div.highlight .-Color[class*=-C83] { + color: #5FFF5F +} + +div.highlight .-Color[class*=-BGC83] { + background-color: #5FFF5F +} + +div.highlight .-Color[class*=-C84] { + color: #5FFF87 +} + +div.highlight .-Color[class*=-BGC84] { + background-color: #5FFF87 +} + +div.highlight .-Color[class*=-C85] { + color: #5FFFAF +} + +div.highlight .-Color[class*=-BGC85] { + background-color: #5FFFAF +} + +div.highlight .-Color[class*=-C86] { + color: #5FFFD7 +} + +div.highlight .-Color[class*=-BGC86] { + background-color: #5FFFD7 +} + +div.highlight .-Color[class*=-C87] { + color: #5FFFFF +} + +div.highlight .-Color[class*=-BGC87] { + background-color: #5FFFFF +} + +div.highlight .-Color[class*=-C88] { + color: #870000 +} + +div.highlight .-Color[class*=-BGC88] { + background-color: #870000 +} + +div.highlight .-Color[class*=-C89] { + color: #87005F +} + +div.highlight .-Color[class*=-BGC89] { + background-color: #87005F +} + +div.highlight .-Color[class*=-C90] { + color: #870087 +} + +div.highlight .-Color[class*=-BGC90] { + background-color: #870087 +} + +div.highlight .-Color[class*=-C91] { + color: #8700AF +} + +div.highlight .-Color[class*=-BGC91] { + background-color: #8700AF +} + +div.highlight .-Color[class*=-C92] { + color: #8700D7 +} + +div.highlight .-Color[class*=-BGC92] { + background-color: #8700D7 +} + +div.highlight .-Color[class*=-C93] { + color: #8700FF +} + +div.highlight .-Color[class*=-BGC93] { + background-color: #8700FF +} + +div.highlight .-Color[class*=-C94] { + color: #875F00 +} + +div.highlight .-Color[class*=-BGC94] { + background-color: #875F00 +} + +div.highlight .-Color[class*=-C95] { + color: #875F5F +} + +div.highlight .-Color[class*=-BGC95] { + background-color: #875F5F +} + +div.highlight .-Color[class*=-C96] { + color: #875F87 +} + +div.highlight .-Color[class*=-BGC96] { + background-color: #875F87 +} + +div.highlight .-Color[class*=-C97] { + color: #875FAF +} + +div.highlight .-Color[class*=-BGC97] { + background-color: #875FAF +} + +div.highlight .-Color[class*=-C98] { + color: #875FD7 +} + +div.highlight .-Color[class*=-BGC98] { + background-color: #875FD7 +} + +div.highlight .-Color[class*=-C99] { + color: #875FFF +} + +div.highlight .-Color[class*=-BGC99] { + background-color: #875FFF +} + +div.highlight .-Color[class*=-C100] { + color: #878700 +} + +div.highlight .-Color[class*=-BGC100] { + background-color: #878700 +} + +div.highlight .-Color[class*=-C101] { + color: #87875F +} + +div.highlight .-Color[class*=-BGC101] { + background-color: #87875F +} + +div.highlight .-Color[class*=-C102] { + color: #878787 +} + +div.highlight .-Color[class*=-BGC102] { + background-color: #878787 +} + +div.highlight .-Color[class*=-C103] { + color: #8787AF +} + +div.highlight .-Color[class*=-BGC103] { + background-color: #8787AF +} + +div.highlight .-Color[class*=-C104] { + color: #8787D7 +} + +div.highlight .-Color[class*=-BGC104] { + background-color: #8787D7 +} + +div.highlight .-Color[class*=-C105] { + color: #8787FF +} + +div.highlight .-Color[class*=-BGC105] { + background-color: #8787FF +} + +div.highlight .-Color[class*=-C106] { + color: #87AF00 +} + +div.highlight .-Color[class*=-BGC106] { + background-color: #87AF00 +} + +div.highlight .-Color[class*=-C107] { + color: #87AF5F +} + +div.highlight .-Color[class*=-BGC107] { + background-color: #87AF5F +} + +div.highlight .-Color[class*=-C108] { + color: #87AF87 +} + +div.highlight .-Color[class*=-BGC108] { + background-color: #87AF87 +} + +div.highlight .-Color[class*=-C109] { + color: #87AFAF +} + +div.highlight .-Color[class*=-BGC109] { + background-color: #87AFAF +} + +div.highlight .-Color[class*=-C110] { + color: #87AFD7 +} + +div.highlight .-Color[class*=-BGC110] { + background-color: #87AFD7 +} + +div.highlight .-Color[class*=-C111] { + color: #87AFFF +} + +div.highlight .-Color[class*=-BGC111] { + background-color: #87AFFF +} + +div.highlight .-Color[class*=-C112] { + color: #87D700 +} + +div.highlight .-Color[class*=-BGC112] { + background-color: #87D700 +} + +div.highlight .-Color[class*=-C113] { + color: #87D75F +} + +div.highlight .-Color[class*=-BGC113] { + background-color: #87D75F +} + +div.highlight .-Color[class*=-C114] { + color: #87D787 +} + +div.highlight .-Color[class*=-BGC114] { + background-color: #87D787 +} + +div.highlight .-Color[class*=-C115] { + color: #87D7AF +} + +div.highlight .-Color[class*=-BGC115] { + background-color: #87D7AF +} + +div.highlight .-Color[class*=-C116] { + color: #87D7D7 +} + +div.highlight .-Color[class*=-BGC116] { + background-color: #87D7D7 +} + +div.highlight .-Color[class*=-C117] { + color: #87D7FF +} + +div.highlight .-Color[class*=-BGC117] { + background-color: #87D7FF +} + +div.highlight .-Color[class*=-C118] { + color: #87FF00 +} + +div.highlight .-Color[class*=-BGC118] { + background-color: #87FF00 +} + +div.highlight .-Color[class*=-C119] { + color: #87FF5F +} + +div.highlight .-Color[class*=-BGC119] { + background-color: #87FF5F +} + +div.highlight .-Color[class*=-C120] { + color: #87FF87 +} + +div.highlight .-Color[class*=-BGC120] { + background-color: #87FF87 +} + +div.highlight .-Color[class*=-C121] { + color: #87FFAF +} + +div.highlight .-Color[class*=-BGC121] { + background-color: #87FFAF +} + +div.highlight .-Color[class*=-C122] { + color: #87FFD7 +} + +div.highlight .-Color[class*=-BGC122] { + background-color: #87FFD7 +} + +div.highlight .-Color[class*=-C123] { + color: #87FFFF +} + +div.highlight .-Color[class*=-BGC123] { + background-color: #87FFFF +} + +div.highlight .-Color[class*=-C124] { + color: #AF0000 +} + +div.highlight .-Color[class*=-BGC124] { + background-color: #AF0000 +} + +div.highlight .-Color[class*=-C125] { + color: #AF005F +} + +div.highlight .-Color[class*=-BGC125] { + background-color: #AF005F +} + +div.highlight .-Color[class*=-C126] { + color: #AF0087 +} + +div.highlight .-Color[class*=-BGC126] { + background-color: #AF0087 +} + +div.highlight .-Color[class*=-C127] { + color: #AF00AF +} + +div.highlight .-Color[class*=-BGC127] { + background-color: #AF00AF +} + +div.highlight .-Color[class*=-C128] { + color: #AF00D7 +} + +div.highlight .-Color[class*=-BGC128] { + background-color: #AF00D7 +} + +div.highlight .-Color[class*=-C129] { + color: #AF00FF +} + +div.highlight .-Color[class*=-BGC129] { + background-color: #AF00FF +} + +div.highlight .-Color[class*=-C130] { + color: #AF5F00 +} + +div.highlight .-Color[class*=-BGC130] { + background-color: #AF5F00 +} + +div.highlight .-Color[class*=-C131] { + color: #AF5F5F +} + +div.highlight .-Color[class*=-BGC131] { + background-color: #AF5F5F +} + +div.highlight .-Color[class*=-C132] { + color: #AF5F87 +} + +div.highlight .-Color[class*=-BGC132] { + background-color: #AF5F87 +} + +div.highlight .-Color[class*=-C133] { + color: #AF5FAF +} + +div.highlight .-Color[class*=-BGC133] { + background-color: #AF5FAF +} + +div.highlight .-Color[class*=-C134] { + color: #AF5FD7 +} + +div.highlight .-Color[class*=-BGC134] { + background-color: #AF5FD7 +} + +div.highlight .-Color[class*=-C135] { + color: #AF5FFF +} + +div.highlight .-Color[class*=-BGC135] { + background-color: #AF5FFF +} + +div.highlight .-Color[class*=-C136] { + color: #AF8700 +} + +div.highlight .-Color[class*=-BGC136] { + background-color: #AF8700 +} + +div.highlight .-Color[class*=-C137] { + color: #AF875F +} + +div.highlight .-Color[class*=-BGC137] { + background-color: #AF875F +} + +div.highlight .-Color[class*=-C138] { + color: #AF8787 +} + +div.highlight .-Color[class*=-BGC138] { + background-color: #AF8787 +} + +div.highlight .-Color[class*=-C139] { + color: #AF87AF +} + +div.highlight .-Color[class*=-BGC139] { + background-color: #AF87AF +} + +div.highlight .-Color[class*=-C140] { + color: #AF87D7 +} + +div.highlight .-Color[class*=-BGC140] { + background-color: #AF87D7 +} + +div.highlight .-Color[class*=-C141] { + color: #AF87FF +} + +div.highlight .-Color[class*=-BGC141] { + background-color: #AF87FF +} + +div.highlight .-Color[class*=-C142] { + color: #AFAF00 +} + +div.highlight .-Color[class*=-BGC142] { + background-color: #AFAF00 +} + +div.highlight .-Color[class*=-C143] { + color: #AFAF5F +} + +div.highlight .-Color[class*=-BGC143] { + background-color: #AFAF5F +} + +div.highlight .-Color[class*=-C144] { + color: #AFAF87 +} + +div.highlight .-Color[class*=-BGC144] { + background-color: #AFAF87 +} + +div.highlight .-Color[class*=-C145] { + color: #AFAFAF +} + +div.highlight .-Color[class*=-BGC145] { + background-color: #AFAFAF +} + +div.highlight .-Color[class*=-C146] { + color: #AFAFD7 +} + +div.highlight .-Color[class*=-BGC146] { + background-color: #AFAFD7 +} + +div.highlight .-Color[class*=-C147] { + color: #AFAFFF +} + +div.highlight .-Color[class*=-BGC147] { + background-color: #AFAFFF +} + +div.highlight .-Color[class*=-C148] { + color: #AFD700 +} + +div.highlight .-Color[class*=-BGC148] { + background-color: #AFD700 +} + +div.highlight .-Color[class*=-C149] { + color: #AFD75F +} + +div.highlight .-Color[class*=-BGC149] { + background-color: #AFD75F +} + +div.highlight .-Color[class*=-C150] { + color: #AFD787 +} + +div.highlight .-Color[class*=-BGC150] { + background-color: #AFD787 +} + +div.highlight .-Color[class*=-C151] { + color: #AFD7AF +} + +div.highlight .-Color[class*=-BGC151] { + background-color: #AFD7AF +} + +div.highlight .-Color[class*=-C152] { + color: #AFD7D7 +} + +div.highlight .-Color[class*=-BGC152] { + background-color: #AFD7D7 +} + +div.highlight .-Color[class*=-C153] { + color: #AFD7FF +} + +div.highlight .-Color[class*=-BGC153] { + background-color: #AFD7FF +} + +div.highlight .-Color[class*=-C154] { + color: #AFFF00 +} + +div.highlight .-Color[class*=-BGC154] { + background-color: #AFFF00 +} + +div.highlight .-Color[class*=-C155] { + color: #AFFF5F +} + +div.highlight .-Color[class*=-BGC155] { + background-color: #AFFF5F +} + +div.highlight .-Color[class*=-C156] { + color: #AFFF87 +} + +div.highlight .-Color[class*=-BGC156] { + background-color: #AFFF87 +} + +div.highlight .-Color[class*=-C157] { + color: #AFFFAF +} + +div.highlight .-Color[class*=-BGC157] { + background-color: #AFFFAF +} + +div.highlight .-Color[class*=-C158] { + color: #AFFFD7 +} + +div.highlight .-Color[class*=-BGC158] { + background-color: #AFFFD7 +} + +div.highlight .-Color[class*=-C159] { + color: #AFFFFF +} + +div.highlight .-Color[class*=-BGC159] { + background-color: #AFFFFF +} + +div.highlight .-Color[class*=-C160] { + color: #D70000 +} + +div.highlight .-Color[class*=-BGC160] { + background-color: #D70000 +} + +div.highlight .-Color[class*=-C161] { + color: #D7005F +} + +div.highlight .-Color[class*=-BGC161] { + background-color: #D7005F +} + +div.highlight .-Color[class*=-C162] { + color: #D70087 +} + +div.highlight .-Color[class*=-BGC162] { + background-color: #D70087 +} + +div.highlight .-Color[class*=-C163] { + color: #D700AF +} + +div.highlight .-Color[class*=-BGC163] { + background-color: #D700AF +} + +div.highlight .-Color[class*=-C164] { + color: #D700D7 +} + +div.highlight .-Color[class*=-BGC164] { + background-color: #D700D7 +} + +div.highlight .-Color[class*=-C165] { + color: #D700FF +} + +div.highlight .-Color[class*=-BGC165] { + background-color: #D700FF +} + +div.highlight .-Color[class*=-C166] { + color: #D75F00 +} + +div.highlight .-Color[class*=-BGC166] { + background-color: #D75F00 +} + +div.highlight .-Color[class*=-C167] { + color: #D75F5F +} + +div.highlight .-Color[class*=-BGC167] { + background-color: #D75F5F +} + +div.highlight .-Color[class*=-C168] { + color: #D75F87 +} + +div.highlight .-Color[class*=-BGC168] { + background-color: #D75F87 +} + +div.highlight .-Color[class*=-C169] { + color: #D75FAF +} + +div.highlight .-Color[class*=-BGC169] { + background-color: #D75FAF +} + +div.highlight .-Color[class*=-C170] { + color: #D75FD7 +} + +div.highlight .-Color[class*=-BGC170] { + background-color: #D75FD7 +} + +div.highlight .-Color[class*=-C171] { + color: #D75FFF +} + +div.highlight .-Color[class*=-BGC171] { + background-color: #D75FFF +} + +div.highlight .-Color[class*=-C172] { + color: #D78700 +} + +div.highlight .-Color[class*=-BGC172] { + background-color: #D78700 +} + +div.highlight .-Color[class*=-C173] { + color: #D7875F +} + +div.highlight .-Color[class*=-BGC173] { + background-color: #D7875F +} + +div.highlight .-Color[class*=-C174] { + color: #D78787 +} + +div.highlight .-Color[class*=-BGC174] { + background-color: #D78787 +} + +div.highlight .-Color[class*=-C175] { + color: #D787AF +} + +div.highlight .-Color[class*=-BGC175] { + background-color: #D787AF +} + +div.highlight .-Color[class*=-C176] { + color: #D787D7 +} + +div.highlight .-Color[class*=-BGC176] { + background-color: #D787D7 +} + +div.highlight .-Color[class*=-C177] { + color: #D787FF +} + +div.highlight .-Color[class*=-BGC177] { + background-color: #D787FF +} + +div.highlight .-Color[class*=-C178] { + color: #D7AF00 +} + +div.highlight .-Color[class*=-BGC178] { + background-color: #D7AF00 +} + +div.highlight .-Color[class*=-C179] { + color: #D7AF5F +} + +div.highlight .-Color[class*=-BGC179] { + background-color: #D7AF5F +} + +div.highlight .-Color[class*=-C180] { + color: #D7AF87 +} + +div.highlight .-Color[class*=-BGC180] { + background-color: #D7AF87 +} + +div.highlight .-Color[class*=-C181] { + color: #D7AFAF +} + +div.highlight .-Color[class*=-BGC181] { + background-color: #D7AFAF +} + +div.highlight .-Color[class*=-C182] { + color: #D7AFD7 +} + +div.highlight .-Color[class*=-BGC182] { + background-color: #D7AFD7 +} + +div.highlight .-Color[class*=-C183] { + color: #D7AFFF +} + +div.highlight .-Color[class*=-BGC183] { + background-color: #D7AFFF +} + +div.highlight .-Color[class*=-C184] { + color: #D7D700 +} + +div.highlight .-Color[class*=-BGC184] { + background-color: #D7D700 +} + +div.highlight .-Color[class*=-C185] { + color: #D7D75F +} + +div.highlight .-Color[class*=-BGC185] { + background-color: #D7D75F +} + +div.highlight .-Color[class*=-C186] { + color: #D7D787 +} + +div.highlight .-Color[class*=-BGC186] { + background-color: #D7D787 +} + +div.highlight .-Color[class*=-C187] { + color: #D7D7AF +} + +div.highlight .-Color[class*=-BGC187] { + background-color: #D7D7AF +} + +div.highlight .-Color[class*=-C188] { + color: #D7D7D7 +} + +div.highlight .-Color[class*=-BGC188] { + background-color: #D7D7D7 +} + +div.highlight .-Color[class*=-C189] { + color: #D7D7FF +} + +div.highlight .-Color[class*=-BGC189] { + background-color: #D7D7FF +} + +div.highlight .-Color[class*=-C190] { + color: #D7FF00 +} + +div.highlight .-Color[class*=-BGC190] { + background-color: #D7FF00 +} + +div.highlight .-Color[class*=-C191] { + color: #D7FF5F +} + +div.highlight .-Color[class*=-BGC191] { + background-color: #D7FF5F +} + +div.highlight .-Color[class*=-C192] { + color: #D7FF87 +} + +div.highlight .-Color[class*=-BGC192] { + background-color: #D7FF87 +} + +div.highlight .-Color[class*=-C193] { + color: #D7FFAF +} + +div.highlight .-Color[class*=-BGC193] { + background-color: #D7FFAF +} + +div.highlight .-Color[class*=-C194] { + color: #D7FFD7 +} + +div.highlight .-Color[class*=-BGC194] { + background-color: #D7FFD7 +} + +div.highlight .-Color[class*=-C195] { + color: #D7FFFF +} + +div.highlight .-Color[class*=-BGC195] { + background-color: #D7FFFF +} + +div.highlight .-Color[class*=-C196] { + color: #FF0000 +} + +div.highlight .-Color[class*=-BGC196] { + background-color: #FF0000 +} + +div.highlight .-Color[class*=-C197] { + color: #FF005F +} + +div.highlight .-Color[class*=-BGC197] { + background-color: #FF005F +} + +div.highlight .-Color[class*=-C198] { + color: #FF0087 +} + +div.highlight .-Color[class*=-BGC198] { + background-color: #FF0087 +} + +div.highlight .-Color[class*=-C199] { + color: #FF00AF +} + +div.highlight .-Color[class*=-BGC199] { + background-color: #FF00AF +} + +div.highlight .-Color[class*=-C200] { + color: #FF00D7 +} + +div.highlight .-Color[class*=-BGC200] { + background-color: #FF00D7 +} + +div.highlight .-Color[class*=-C201] { + color: #FF00FF +} + +div.highlight .-Color[class*=-BGC201] { + background-color: #FF00FF +} + +div.highlight .-Color[class*=-C202] { + color: #FF5F00 +} + +div.highlight .-Color[class*=-BGC202] { + background-color: #FF5F00 +} + +div.highlight .-Color[class*=-C203] { + color: #FF5F5F +} + +div.highlight .-Color[class*=-BGC203] { + background-color: #FF5F5F +} + +div.highlight .-Color[class*=-C204] { + color: #FF5F87 +} + +div.highlight .-Color[class*=-BGC204] { + background-color: #FF5F87 +} + +div.highlight .-Color[class*=-C205] { + color: #FF5FAF +} + +div.highlight .-Color[class*=-BGC205] { + background-color: #FF5FAF +} + +div.highlight .-Color[class*=-C206] { + color: #FF5FD7 +} + +div.highlight .-Color[class*=-BGC206] { + background-color: #FF5FD7 +} + +div.highlight .-Color[class*=-C207] { + color: #FF5FFF +} + +div.highlight .-Color[class*=-BGC207] { + background-color: #FF5FFF +} + +div.highlight .-Color[class*=-C208] { + color: #FF8700 +} + +div.highlight .-Color[class*=-BGC208] { + background-color: #FF8700 +} + +div.highlight .-Color[class*=-C209] { + color: #FF875F +} + +div.highlight .-Color[class*=-BGC209] { + background-color: #FF875F +} + +div.highlight .-Color[class*=-C210] { + color: #FF8787 +} + +div.highlight .-Color[class*=-BGC210] { + background-color: #FF8787 +} + +div.highlight .-Color[class*=-C211] { + color: #FF87AF +} + +div.highlight .-Color[class*=-BGC211] { + background-color: #FF87AF +} + +div.highlight .-Color[class*=-C212] { + color: #FF87D7 +} + +div.highlight .-Color[class*=-BGC212] { + background-color: #FF87D7 +} + +div.highlight .-Color[class*=-C213] { + color: #FF87FF +} + +div.highlight .-Color[class*=-BGC213] { + background-color: #FF87FF +} + +div.highlight .-Color[class*=-C214] { + color: #FFAF00 +} + +div.highlight .-Color[class*=-BGC214] { + background-color: #FFAF00 +} + +div.highlight .-Color[class*=-C215] { + color: #FFAF5F +} + +div.highlight .-Color[class*=-BGC215] { + background-color: #FFAF5F +} + +div.highlight .-Color[class*=-C216] { + color: #FFAF87 +} + +div.highlight .-Color[class*=-BGC216] { + background-color: #FFAF87 +} + +div.highlight .-Color[class*=-C217] { + color: #FFAFAF +} + +div.highlight .-Color[class*=-BGC217] { + background-color: #FFAFAF +} + +div.highlight .-Color[class*=-C218] { + color: #FFAFD7 +} + +div.highlight .-Color[class*=-BGC218] { + background-color: #FFAFD7 +} + +div.highlight .-Color[class*=-C219] { + color: #FFAFFF +} + +div.highlight .-Color[class*=-BGC219] { + background-color: #FFAFFF +} + +div.highlight .-Color[class*=-C220] { + color: #FFD700 +} + +div.highlight .-Color[class*=-BGC220] { + background-color: #FFD700 +} + +div.highlight .-Color[class*=-C221] { + color: #FFD75F +} + +div.highlight .-Color[class*=-BGC221] { + background-color: #FFD75F +} + +div.highlight .-Color[class*=-C222] { + color: #FFD787 +} + +div.highlight .-Color[class*=-BGC222] { + background-color: #FFD787 +} + +div.highlight .-Color[class*=-C223] { + color: #FFD7AF +} + +div.highlight .-Color[class*=-BGC223] { + background-color: #FFD7AF +} + +div.highlight .-Color[class*=-C224] { + color: #FFD7D7 +} + +div.highlight .-Color[class*=-BGC224] { + background-color: #FFD7D7 +} + +div.highlight .-Color[class*=-C225] { + color: #FFD7FF +} + +div.highlight .-Color[class*=-BGC225] { + background-color: #FFD7FF +} + +div.highlight .-Color[class*=-C226] { + color: #FFFF00 +} + +div.highlight .-Color[class*=-BGC226] { + background-color: #FFFF00 +} + +div.highlight .-Color[class*=-C227] { + color: #FFFF5F +} + +div.highlight .-Color[class*=-BGC227] { + background-color: #FFFF5F +} + +div.highlight .-Color[class*=-C228] { + color: #FFFF87 +} + +div.highlight .-Color[class*=-BGC228] { + background-color: #FFFF87 +} + +div.highlight .-Color[class*=-C229] { + color: #FFFFAF +} + +div.highlight .-Color[class*=-BGC229] { + background-color: #FFFFAF +} + +div.highlight .-Color[class*=-C230] { + color: #FFFFD7 +} + +div.highlight .-Color[class*=-BGC230] { + background-color: #FFFFD7 +} + +div.highlight .-Color[class*=-C231] { + color: #FFFFFF +} + +div.highlight .-Color[class*=-BGC231] { + background-color: #FFFFFF +} + +div.highlight .-Color[class*=-C232] { + color: #080808 +} + +div.highlight .-Color[class*=-BGC232] { + background-color: #080808 +} + +div.highlight .-Color[class*=-C233] { + color: #121212 +} + +div.highlight .-Color[class*=-BGC233] { + background-color: #121212 +} + +div.highlight .-Color[class*=-C234] { + color: #1C1C1C +} + +div.highlight .-Color[class*=-BGC234] { + background-color: #1C1C1C +} + +div.highlight .-Color[class*=-C235] { + color: #262626 +} + +div.highlight .-Color[class*=-BGC235] { + background-color: #262626 +} + +div.highlight .-Color[class*=-C236] { + color: #303030 +} + +div.highlight .-Color[class*=-BGC236] { + background-color: #303030 +} + +div.highlight .-Color[class*=-C237] { + color: #3A3A3A +} + +div.highlight .-Color[class*=-BGC237] { + background-color: #3A3A3A +} + +div.highlight .-Color[class*=-C238] { + color: #444444 +} + +div.highlight .-Color[class*=-BGC238] { + background-color: #444444 +} + +div.highlight .-Color[class*=-C239] { + color: #4E4E4E +} + +div.highlight .-Color[class*=-BGC239] { + background-color: #4E4E4E +} + +div.highlight .-Color[class*=-C240] { + color: #585858 +} + +div.highlight .-Color[class*=-BGC240] { + background-color: #585858 +} + +div.highlight .-Color[class*=-C241] { + color: #626262 +} + +div.highlight .-Color[class*=-BGC241] { + background-color: #626262 +} + +div.highlight .-Color[class*=-C242] { + color: #6C6C6C +} + +div.highlight .-Color[class*=-BGC242] { + background-color: #6C6C6C +} + +div.highlight .-Color[class*=-C243] { + color: #767676 +} + +div.highlight .-Color[class*=-BGC243] { + background-color: #767676 +} + +div.highlight .-Color[class*=-C244] { + color: #808080 +} + +div.highlight .-Color[class*=-BGC244] { + background-color: #808080 +} + +div.highlight .-Color[class*=-C245] { + color: #8A8A8A +} + +div.highlight .-Color[class*=-BGC245] { + background-color: #8A8A8A +} + +div.highlight .-Color[class*=-C246] { + color: #949494 +} + +div.highlight .-Color[class*=-BGC246] { + background-color: #949494 +} + +div.highlight .-Color[class*=-C247] { + color: #9E9E9E +} + +div.highlight .-Color[class*=-BGC247] { + background-color: #9E9E9E +} + +div.highlight .-Color[class*=-C248] { + color: #A8A8A8 +} + +div.highlight .-Color[class*=-BGC248] { + background-color: #A8A8A8 +} + +div.highlight .-Color[class*=-C249] { + color: #B2B2B2 +} + +div.highlight .-Color[class*=-BGC249] { + background-color: #B2B2B2 +} + +div.highlight .-Color[class*=-C250] { + color: #BCBCBC +} + +div.highlight .-Color[class*=-BGC250] { + background-color: #BCBCBC +} + +div.highlight .-Color[class*=-C251] { + color: #C6C6C6 +} + +div.highlight .-Color[class*=-BGC251] { + background-color: #C6C6C6 +} + +div.highlight .-Color[class*=-C252] { + color: #D0D0D0 +} + +div.highlight .-Color[class*=-BGC252] { + background-color: #D0D0D0 +} + +div.highlight .-Color[class*=-C253] { + color: #DADADA +} + +div.highlight .-Color[class*=-BGC253] { + background-color: #DADADA +} + +div.highlight .-Color[class*=-C254] { + color: #E4E4E4 +} + +div.highlight .-Color[class*=-BGC254] { + background-color: #E4E4E4 +} + +div.highlight .-Color[class*=-C255] { + color: #EEEEEE +} + +div.highlight .-Color[class*=-BGC255] { + background-color: #EEEEEE +} diff --git a/_static/play-solid.svg b/_static/play-solid.svg new file mode 100644 index 00000000..bcd81f7a --- /dev/null +++ b/_static/play-solid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/_static/plus.png b/_static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7107cec93a979b9a5f64843235a16651d563ce2d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz literal 0 HcmV?d00001 diff --git a/_static/pygments.css b/_static/pygments.css new file mode 100644 index 00000000..012e6a00 --- /dev/null +++ b/_static/pygments.css @@ -0,0 +1,152 @@ +html[data-theme="light"] .highlight pre { line-height: 125%; } +html[data-theme="light"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="light"] .highlight .hll { background-color: #fae4c2 } +html[data-theme="light"] .highlight { background: #fefefe; color: #080808 } +html[data-theme="light"] .highlight .c { color: #515151 } /* Comment */ +html[data-theme="light"] .highlight .err { color: #a12236 } /* Error */ +html[data-theme="light"] .highlight .k { color: #6730c5 } /* Keyword */ +html[data-theme="light"] .highlight .l { color: #7f4707 } /* Literal */ +html[data-theme="light"] .highlight .n { color: #080808 } /* Name */ +html[data-theme="light"] .highlight .o { color: #00622f } /* Operator */ +html[data-theme="light"] .highlight .p { color: #080808 } /* Punctuation */ +html[data-theme="light"] .highlight .ch { color: #515151 } /* Comment.Hashbang */ +html[data-theme="light"] .highlight .cm { color: #515151 } /* Comment.Multiline */ +html[data-theme="light"] .highlight .cp { color: #515151 } /* Comment.Preproc */ +html[data-theme="light"] .highlight .cpf { color: #515151 } /* Comment.PreprocFile */ +html[data-theme="light"] .highlight .c1 { color: #515151 } /* Comment.Single */ +html[data-theme="light"] .highlight .cs { color: #515151 } /* Comment.Special */ +html[data-theme="light"] .highlight .gd { color: #005b82 } /* Generic.Deleted */ +html[data-theme="light"] .highlight .ge { font-style: italic } /* Generic.Emph */ +html[data-theme="light"] .highlight .gh { color: #005b82 } /* Generic.Heading */ +html[data-theme="light"] .highlight .gs { font-weight: bold } /* Generic.Strong */ +html[data-theme="light"] .highlight .gu { color: #005b82 } /* Generic.Subheading */ +html[data-theme="light"] .highlight .kc { color: #6730c5 } /* Keyword.Constant */ +html[data-theme="light"] .highlight .kd { color: #6730c5 } /* Keyword.Declaration */ +html[data-theme="light"] .highlight .kn { color: #6730c5 } /* Keyword.Namespace */ +html[data-theme="light"] .highlight .kp { color: #6730c5 } /* Keyword.Pseudo */ +html[data-theme="light"] .highlight .kr { color: #6730c5 } /* Keyword.Reserved */ +html[data-theme="light"] .highlight .kt { color: #7f4707 } /* Keyword.Type */ +html[data-theme="light"] .highlight .ld { color: #7f4707 } /* Literal.Date */ +html[data-theme="light"] .highlight .m { color: #7f4707 } /* Literal.Number */ +html[data-theme="light"] .highlight .s { color: #00622f } /* Literal.String */ +html[data-theme="light"] .highlight .na { color: #912583 } /* Name.Attribute */ +html[data-theme="light"] .highlight .nb { color: #7f4707 } /* Name.Builtin */ +html[data-theme="light"] .highlight .nc { color: #005b82 } /* Name.Class */ +html[data-theme="light"] .highlight .no { color: #005b82 } /* Name.Constant */ +html[data-theme="light"] .highlight .nd { color: #7f4707 } /* Name.Decorator */ +html[data-theme="light"] .highlight .ni { color: #00622f } /* Name.Entity */ +html[data-theme="light"] .highlight .ne { color: #6730c5 } /* Name.Exception */ +html[data-theme="light"] .highlight .nf { color: #005b82 } /* Name.Function */ +html[data-theme="light"] .highlight .nl { color: #7f4707 } /* Name.Label */ +html[data-theme="light"] .highlight .nn { color: #080808 } /* Name.Namespace */ +html[data-theme="light"] .highlight .nx { color: #080808 } /* Name.Other */ +html[data-theme="light"] .highlight .py { color: #005b82 } /* Name.Property */ +html[data-theme="light"] .highlight .nt { color: #005b82 } /* Name.Tag */ +html[data-theme="light"] .highlight .nv { color: #a12236 } /* Name.Variable */ +html[data-theme="light"] .highlight .ow { color: #6730c5 } /* Operator.Word */ +html[data-theme="light"] .highlight .pm { color: #080808 } /* Punctuation.Marker */ +html[data-theme="light"] .highlight .w { color: #080808 } /* Text.Whitespace */ +html[data-theme="light"] .highlight .mb { color: #7f4707 } /* Literal.Number.Bin */ +html[data-theme="light"] .highlight .mf { color: #7f4707 } /* Literal.Number.Float */ +html[data-theme="light"] .highlight .mh { color: #7f4707 } /* Literal.Number.Hex */ +html[data-theme="light"] .highlight .mi { color: #7f4707 } /* Literal.Number.Integer */ +html[data-theme="light"] .highlight .mo { color: #7f4707 } /* Literal.Number.Oct */ +html[data-theme="light"] .highlight .sa { color: #00622f } /* Literal.String.Affix */ +html[data-theme="light"] .highlight .sb { color: #00622f } /* Literal.String.Backtick */ +html[data-theme="light"] .highlight .sc { color: #00622f } /* Literal.String.Char */ +html[data-theme="light"] .highlight .dl { color: #00622f } /* Literal.String.Delimiter */ +html[data-theme="light"] .highlight .sd { color: #00622f } /* Literal.String.Doc */ +html[data-theme="light"] .highlight .s2 { color: #00622f } /* Literal.String.Double */ +html[data-theme="light"] .highlight .se { color: #00622f } /* Literal.String.Escape */ +html[data-theme="light"] .highlight .sh { color: #00622f } /* Literal.String.Heredoc */ +html[data-theme="light"] .highlight .si { color: #00622f } /* Literal.String.Interpol */ +html[data-theme="light"] .highlight .sx { color: #00622f } /* Literal.String.Other */ +html[data-theme="light"] .highlight .sr { color: #a12236 } /* Literal.String.Regex */ +html[data-theme="light"] .highlight .s1 { color: #00622f } /* Literal.String.Single */ +html[data-theme="light"] .highlight .ss { color: #005b82 } /* Literal.String.Symbol */ +html[data-theme="light"] .highlight .bp { color: #7f4707 } /* Name.Builtin.Pseudo */ +html[data-theme="light"] .highlight .fm { color: #005b82 } /* Name.Function.Magic */ +html[data-theme="light"] .highlight .vc { color: #a12236 } /* Name.Variable.Class */ +html[data-theme="light"] .highlight .vg { color: #a12236 } /* Name.Variable.Global */ +html[data-theme="light"] .highlight .vi { color: #a12236 } /* Name.Variable.Instance */ +html[data-theme="light"] .highlight .vm { color: #7f4707 } /* Name.Variable.Magic */ +html[data-theme="light"] .highlight .il { color: #7f4707 } /* Literal.Number.Integer.Long */ +html[data-theme="dark"] .highlight pre { line-height: 125%; } +html[data-theme="dark"] .highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +html[data-theme="dark"] .highlight .hll { background-color: #ffd9002e } +html[data-theme="dark"] .highlight { background: #2b2b2b; color: #f8f8f2 } +html[data-theme="dark"] .highlight .c { color: #ffd900 } /* Comment */ +html[data-theme="dark"] .highlight .err { color: #ffa07a } /* Error */ +html[data-theme="dark"] .highlight .k { color: #dcc6e0 } /* Keyword */ +html[data-theme="dark"] .highlight .l { color: #ffd900 } /* Literal */ +html[data-theme="dark"] .highlight .n { color: #f8f8f2 } /* Name */ +html[data-theme="dark"] .highlight .o { color: #abe338 } /* Operator */ +html[data-theme="dark"] .highlight .p { color: #f8f8f2 } /* Punctuation */ +html[data-theme="dark"] .highlight .ch { color: #ffd900 } /* Comment.Hashbang */ +html[data-theme="dark"] .highlight .cm { color: #ffd900 } /* Comment.Multiline */ +html[data-theme="dark"] .highlight .cp { color: #ffd900 } /* Comment.Preproc */ +html[data-theme="dark"] .highlight .cpf { color: #ffd900 } /* Comment.PreprocFile */ +html[data-theme="dark"] .highlight .c1 { color: #ffd900 } /* Comment.Single */ +html[data-theme="dark"] .highlight .cs { color: #ffd900 } /* Comment.Special */ +html[data-theme="dark"] .highlight .gd { color: #00e0e0 } /* Generic.Deleted */ +html[data-theme="dark"] .highlight .ge { font-style: italic } /* Generic.Emph */ +html[data-theme="dark"] .highlight .gh { color: #00e0e0 } /* Generic.Heading */ +html[data-theme="dark"] .highlight .gs { font-weight: bold } /* Generic.Strong */ +html[data-theme="dark"] .highlight .gu { color: #00e0e0 } /* Generic.Subheading */ +html[data-theme="dark"] .highlight .kc { color: #dcc6e0 } /* Keyword.Constant */ +html[data-theme="dark"] .highlight .kd { color: #dcc6e0 } /* Keyword.Declaration */ +html[data-theme="dark"] .highlight .kn { color: #dcc6e0 } /* Keyword.Namespace */ +html[data-theme="dark"] .highlight .kp { color: #dcc6e0 } /* Keyword.Pseudo */ +html[data-theme="dark"] .highlight .kr { color: #dcc6e0 } /* Keyword.Reserved */ +html[data-theme="dark"] .highlight .kt { color: #ffd900 } /* Keyword.Type */ +html[data-theme="dark"] .highlight .ld { color: #ffd900 } /* Literal.Date */ +html[data-theme="dark"] .highlight .m { color: #ffd900 } /* Literal.Number */ +html[data-theme="dark"] .highlight .s { color: #abe338 } /* Literal.String */ +html[data-theme="dark"] .highlight .na { color: #ffd900 } /* Name.Attribute */ +html[data-theme="dark"] .highlight .nb { color: #ffd900 } /* Name.Builtin */ +html[data-theme="dark"] .highlight .nc { color: #00e0e0 } /* Name.Class */ +html[data-theme="dark"] .highlight .no { color: #00e0e0 } /* Name.Constant */ +html[data-theme="dark"] .highlight .nd { color: #ffd900 } /* Name.Decorator */ +html[data-theme="dark"] .highlight .ni { color: #abe338 } /* Name.Entity */ +html[data-theme="dark"] .highlight .ne { color: #dcc6e0 } /* Name.Exception */ +html[data-theme="dark"] .highlight .nf { color: #00e0e0 } /* Name.Function */ +html[data-theme="dark"] .highlight .nl { color: #ffd900 } /* Name.Label */ +html[data-theme="dark"] .highlight .nn { color: #f8f8f2 } /* Name.Namespace */ +html[data-theme="dark"] .highlight .nx { color: #f8f8f2 } /* Name.Other */ +html[data-theme="dark"] .highlight .py { color: #00e0e0 } /* Name.Property */ +html[data-theme="dark"] .highlight .nt { color: #00e0e0 } /* Name.Tag */ +html[data-theme="dark"] .highlight .nv { color: #ffa07a } /* Name.Variable */ +html[data-theme="dark"] .highlight .ow { color: #dcc6e0 } /* Operator.Word */ +html[data-theme="dark"] .highlight .pm { color: #f8f8f2 } /* Punctuation.Marker */ +html[data-theme="dark"] .highlight .w { color: #f8f8f2 } /* Text.Whitespace */ +html[data-theme="dark"] .highlight .mb { color: #ffd900 } /* Literal.Number.Bin */ +html[data-theme="dark"] .highlight .mf { color: #ffd900 } /* Literal.Number.Float */ +html[data-theme="dark"] .highlight .mh { color: #ffd900 } /* Literal.Number.Hex */ +html[data-theme="dark"] .highlight .mi { color: #ffd900 } /* Literal.Number.Integer */ +html[data-theme="dark"] .highlight .mo { color: #ffd900 } /* Literal.Number.Oct */ +html[data-theme="dark"] .highlight .sa { color: #abe338 } /* Literal.String.Affix */ +html[data-theme="dark"] .highlight .sb { color: #abe338 } /* Literal.String.Backtick */ +html[data-theme="dark"] .highlight .sc { color: #abe338 } /* Literal.String.Char */ +html[data-theme="dark"] .highlight .dl { color: #abe338 } /* Literal.String.Delimiter */ +html[data-theme="dark"] .highlight .sd { color: #abe338 } /* Literal.String.Doc */ +html[data-theme="dark"] .highlight .s2 { color: #abe338 } /* Literal.String.Double */ +html[data-theme="dark"] .highlight .se { color: #abe338 } /* Literal.String.Escape */ +html[data-theme="dark"] .highlight .sh { color: #abe338 } /* Literal.String.Heredoc */ +html[data-theme="dark"] .highlight .si { color: #abe338 } /* Literal.String.Interpol */ +html[data-theme="dark"] .highlight .sx { color: #abe338 } /* Literal.String.Other */ +html[data-theme="dark"] .highlight .sr { color: #ffa07a } /* Literal.String.Regex */ +html[data-theme="dark"] .highlight .s1 { color: #abe338 } /* Literal.String.Single */ +html[data-theme="dark"] .highlight .ss { color: #00e0e0 } /* Literal.String.Symbol */ +html[data-theme="dark"] .highlight .bp { color: #ffd900 } /* Name.Builtin.Pseudo */ +html[data-theme="dark"] .highlight .fm { color: #00e0e0 } /* Name.Function.Magic */ +html[data-theme="dark"] .highlight .vc { color: #ffa07a } /* Name.Variable.Class */ +html[data-theme="dark"] .highlight .vg { color: #ffa07a } /* Name.Variable.Global */ +html[data-theme="dark"] .highlight .vi { color: #ffa07a } /* Name.Variable.Instance */ +html[data-theme="dark"] .highlight .vm { color: #ffd900 } /* Name.Variable.Magic */ +html[data-theme="dark"] .highlight .il { color: #ffd900 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_static/sbt-webpack-macros.html b/_static/sbt-webpack-macros.html new file mode 100644 index 00000000..6cbf559f --- /dev/null +++ b/_static/sbt-webpack-macros.html @@ -0,0 +1,11 @@ + +{% macro head_pre_bootstrap() %} + +{% endmacro %} + +{% macro body_post() %} + +{% endmacro %} diff --git a/_static/scripts/bootstrap.js b/_static/scripts/bootstrap.js new file mode 100644 index 00000000..c8178deb --- /dev/null +++ b/_static/scripts/bootstrap.js @@ -0,0 +1,3 @@ +/*! For license information please see bootstrap.js.LICENSE.txt */ +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{afterMain:()=>E,afterRead:()=>v,afterWrite:()=>C,applyStyles:()=>$,arrow:()=>J,auto:()=>a,basePlacements:()=>l,beforeMain:()=>y,beforeRead:()=>_,beforeWrite:()=>A,bottom:()=>s,clippingParents:()=>d,computeStyles:()=>it,createPopper:()=>Dt,createPopperBase:()=>St,createPopperLite:()=>$t,detectOverflow:()=>_t,end:()=>h,eventListeners:()=>st,flip:()=>bt,hide:()=>wt,left:()=>r,main:()=>w,modifierPhases:()=>O,offset:()=>Et,placements:()=>g,popper:()=>f,popperGenerator:()=>Lt,popperOffsets:()=>At,preventOverflow:()=>Tt,read:()=>b,reference:()=>p,right:()=>o,start:()=>c,top:()=>n,variationPlacements:()=>m,viewport:()=>u,write:()=>T});var i={};t.r(i),t.d(i,{Alert:()=>Oe,Button:()=>ke,Carousel:()=>li,Collapse:()=>Ei,Dropdown:()=>Ki,Modal:()=>Ln,Offcanvas:()=>Kn,Popover:()=>bs,ScrollSpy:()=>Ls,Tab:()=>Js,Toast:()=>po,Tooltip:()=>fs});var n="top",s="bottom",o="right",r="left",a="auto",l=[n,s,o,r],c="start",h="end",d="clippingParents",u="viewport",f="popper",p="reference",m=l.reduce((function(t,e){return t.concat([e+"-"+c,e+"-"+h])}),[]),g=[].concat(l,[a]).reduce((function(t,e){return t.concat([e,e+"-"+c,e+"-"+h])}),[]),_="beforeRead",b="read",v="afterRead",y="beforeMain",w="main",E="afterMain",A="beforeWrite",T="write",C="afterWrite",O=[_,b,v,y,w,E,A,T,C];function x(t){return t?(t.nodeName||"").toLowerCase():null}function k(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function L(t){return t instanceof k(t).Element||t instanceof Element}function S(t){return t instanceof k(t).HTMLElement||t instanceof HTMLElement}function D(t){return"undefined"!=typeof ShadowRoot&&(t instanceof k(t).ShadowRoot||t instanceof ShadowRoot)}const $={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];S(s)&&x(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});S(n)&&x(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function I(t){return t.split("-")[0]}var N=Math.max,P=Math.min,M=Math.round;function j(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function F(){return!/^((?!chrome|android).)*safari/i.test(j())}function H(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&S(t)&&(s=t.offsetWidth>0&&M(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&M(n.height)/t.offsetHeight||1);var r=(L(t)?k(t):window).visualViewport,a=!F()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function B(t){var e=H(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function W(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&D(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function z(t){return k(t).getComputedStyle(t)}function R(t){return["table","td","th"].indexOf(x(t))>=0}function q(t){return((L(t)?t.ownerDocument:t.document)||window.document).documentElement}function V(t){return"html"===x(t)?t:t.assignedSlot||t.parentNode||(D(t)?t.host:null)||q(t)}function Y(t){return S(t)&&"fixed"!==z(t).position?t.offsetParent:null}function K(t){for(var e=k(t),i=Y(t);i&&R(i)&&"static"===z(i).position;)i=Y(i);return i&&("html"===x(i)||"body"===x(i)&&"static"===z(i).position)?e:i||function(t){var e=/firefox/i.test(j());if(/Trident/i.test(j())&&S(t)&&"fixed"===z(t).position)return null;var i=V(t);for(D(i)&&(i=i.host);S(i)&&["html","body"].indexOf(x(i))<0;){var n=z(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Q(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function X(t,e,i){return N(t,P(e,i))}function U(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function G(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const J={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,a=t.name,c=t.options,h=i.elements.arrow,d=i.modifiersData.popperOffsets,u=I(i.placement),f=Q(u),p=[r,o].indexOf(u)>=0?"height":"width";if(h&&d){var m=function(t,e){return U("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:G(t,l))}(c.padding,i),g=B(h),_="y"===f?n:r,b="y"===f?s:o,v=i.rects.reference[p]+i.rects.reference[f]-d[f]-i.rects.popper[p],y=d[f]-i.rects.reference[f],w=K(h),E=w?"y"===f?w.clientHeight||0:w.clientWidth||0:0,A=v/2-y/2,T=m[_],C=E-g[p]-m[b],O=E/2-g[p]/2+A,x=X(T,O,C),k=f;i.modifiersData[a]=((e={})[k]=x,e.centerOffset=x-O,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&W(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Z(t){return t.split("-")[1]}var tt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function et(t){var e,i=t.popper,a=t.popperRect,l=t.placement,c=t.variation,d=t.offsets,u=t.position,f=t.gpuAcceleration,p=t.adaptive,m=t.roundOffsets,g=t.isFixed,_=d.x,b=void 0===_?0:_,v=d.y,y=void 0===v?0:v,w="function"==typeof m?m({x:b,y}):{x:b,y};b=w.x,y=w.y;var E=d.hasOwnProperty("x"),A=d.hasOwnProperty("y"),T=r,C=n,O=window;if(p){var x=K(i),L="clientHeight",S="clientWidth";x===k(i)&&"static"!==z(x=q(i)).position&&"absolute"===u&&(L="scrollHeight",S="scrollWidth"),(l===n||(l===r||l===o)&&c===h)&&(C=s,y-=(g&&x===O&&O.visualViewport?O.visualViewport.height:x[L])-a.height,y*=f?1:-1),l!==r&&(l!==n&&l!==s||c!==h)||(T=o,b-=(g&&x===O&&O.visualViewport?O.visualViewport.width:x[S])-a.width,b*=f?1:-1)}var D,$=Object.assign({position:u},p&&tt),I=!0===m?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:M(i*s)/s||0,y:M(n*s)/s||0}}({x:b,y},k(i)):{x:b,y};return b=I.x,y=I.y,f?Object.assign({},$,((D={})[C]=A?"0":"",D[T]=E?"0":"",D.transform=(O.devicePixelRatio||1)<=1?"translate("+b+"px, "+y+"px)":"translate3d("+b+"px, "+y+"px, 0)",D)):Object.assign({},$,((e={})[C]=A?y+"px":"",e[T]=E?b+"px":"",e.transform="",e))}const it={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:I(e.placement),variation:Z(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,et(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,et(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var nt={passive:!0};const st={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=k(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,nt)})),a&&l.addEventListener("resize",i.update,nt),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,nt)})),a&&l.removeEventListener("resize",i.update,nt)}},data:{}};var ot={left:"right",right:"left",bottom:"top",top:"bottom"};function rt(t){return t.replace(/left|right|bottom|top/g,(function(t){return ot[t]}))}var at={start:"end",end:"start"};function lt(t){return t.replace(/start|end/g,(function(t){return at[t]}))}function ct(t){var e=k(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ht(t){return H(q(t)).left+ct(t).scrollLeft}function dt(t){var e=z(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function ut(t){return["html","body","#document"].indexOf(x(t))>=0?t.ownerDocument.body:S(t)&&dt(t)?t:ut(V(t))}function ft(t,e){var i;void 0===e&&(e=[]);var n=ut(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=k(n),r=s?[o].concat(o.visualViewport||[],dt(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(ft(V(r)))}function pt(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function mt(t,e,i){return e===u?pt(function(t,e){var i=k(t),n=q(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=F();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+ht(t),y:l}}(t,i)):L(e)?function(t,e){var i=H(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):pt(function(t){var e,i=q(t),n=ct(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=N(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=N(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+ht(t),l=-n.scrollTop;return"rtl"===z(s||i).direction&&(a+=N(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(q(t)))}function gt(t){var e,i=t.reference,a=t.element,l=t.placement,d=l?I(l):null,u=l?Z(l):null,f=i.x+i.width/2-a.width/2,p=i.y+i.height/2-a.height/2;switch(d){case n:e={x:f,y:i.y-a.height};break;case s:e={x:f,y:i.y+i.height};break;case o:e={x:i.x+i.width,y:p};break;case r:e={x:i.x-a.width,y:p};break;default:e={x:i.x,y:i.y}}var m=d?Q(d):null;if(null!=m){var g="y"===m?"height":"width";switch(u){case c:e[m]=e[m]-(i[g]/2-a[g]/2);break;case h:e[m]=e[m]+(i[g]/2-a[g]/2)}}return e}function _t(t,e){void 0===e&&(e={});var i=e,r=i.placement,a=void 0===r?t.placement:r,c=i.strategy,h=void 0===c?t.strategy:c,m=i.boundary,g=void 0===m?d:m,_=i.rootBoundary,b=void 0===_?u:_,v=i.elementContext,y=void 0===v?f:v,w=i.altBoundary,E=void 0!==w&&w,A=i.padding,T=void 0===A?0:A,C=U("number"!=typeof T?T:G(T,l)),O=y===f?p:f,k=t.rects.popper,D=t.elements[E?O:y],$=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=ft(V(t)),i=["absolute","fixed"].indexOf(z(t).position)>=0&&S(t)?K(t):t;return L(i)?e.filter((function(t){return L(t)&&W(t,i)&&"body"!==x(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=mt(t,i,n);return e.top=N(s.top,e.top),e.right=P(s.right,e.right),e.bottom=P(s.bottom,e.bottom),e.left=N(s.left,e.left),e}),mt(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(L(D)?D:D.contextElement||q(t.elements.popper),g,b,h),I=H(t.elements.reference),M=gt({reference:I,element:k,strategy:"absolute",placement:a}),j=pt(Object.assign({},k,M)),F=y===f?j:I,B={top:$.top-F.top+C.top,bottom:F.bottom-$.bottom+C.bottom,left:$.left-F.left+C.left,right:F.right-$.right+C.right},R=t.modifiersData.offset;if(y===f&&R){var Y=R[a];Object.keys(B).forEach((function(t){var e=[o,s].indexOf(t)>=0?1:-1,i=[n,s].indexOf(t)>=0?"y":"x";B[t]+=Y[i]*e}))}return B}const bt={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,h=t.name;if(!e.modifiersData[h]._skip){for(var d=i.mainAxis,u=void 0===d||d,f=i.altAxis,p=void 0===f||f,_=i.fallbackPlacements,b=i.padding,v=i.boundary,y=i.rootBoundary,w=i.altBoundary,E=i.flipVariations,A=void 0===E||E,T=i.allowedAutoPlacements,C=e.options.placement,O=I(C),x=_||(O!==C&&A?function(t){if(I(t)===a)return[];var e=rt(t);return[lt(t),e,lt(e)]}(C):[rt(C)]),k=[C].concat(x).reduce((function(t,i){return t.concat(I(i)===a?function(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,c=i.allowedAutoPlacements,h=void 0===c?g:c,d=Z(n),u=d?a?m:m.filter((function(t){return Z(t)===d})):l,f=u.filter((function(t){return h.indexOf(t)>=0}));0===f.length&&(f=u);var p=f.reduce((function(e,i){return e[i]=_t(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[I(i)],e}),{});return Object.keys(p).sort((function(t,e){return p[t]-p[e]}))}(e,{placement:i,boundary:v,rootBoundary:y,padding:b,flipVariations:A,allowedAutoPlacements:T}):i)}),[]),L=e.rects.reference,S=e.rects.popper,D=new Map,$=!0,N=k[0],P=0;P=0,B=H?"width":"height",W=_t(e,{placement:M,boundary:v,rootBoundary:y,altBoundary:w,padding:b}),z=H?F?o:r:F?s:n;L[B]>S[B]&&(z=rt(z));var R=rt(z),q=[];if(u&&q.push(W[j]<=0),p&&q.push(W[z]<=0,W[R]<=0),q.every((function(t){return t}))){N=M,$=!1;break}D.set(M,q)}if($)for(var V=function(t){var e=k.find((function(e){var i=D.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return N=e,"break"},Y=A?3:1;Y>0&&"break"!==V(Y);Y--);e.placement!==N&&(e.modifiersData[h]._skip=!0,e.placement=N,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function vt(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function yt(t){return[n,o,s,r].some((function(e){return t[e]>=0}))}const wt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=_t(e,{elementContext:"reference"}),a=_t(e,{altBoundary:!0}),l=vt(r,n),c=vt(a,s,o),h=yt(l),d=yt(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},Et={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,s=t.name,a=i.offset,l=void 0===a?[0,0]:a,c=g.reduce((function(t,i){return t[i]=function(t,e,i){var s=I(t),a=[r,n].indexOf(s)>=0?-1:1,l="function"==typeof i?i(Object.assign({},e,{placement:t})):i,c=l[0],h=l[1];return c=c||0,h=(h||0)*a,[r,o].indexOf(s)>=0?{x:h,y:c}:{x:c,y:h}}(i,e.rects,l),t}),{}),h=c[e.placement],d=h.x,u=h.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=d,e.modifiersData.popperOffsets.y+=u),e.modifiersData[s]=c}},At={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=gt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},Tt={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,a=t.name,l=i.mainAxis,h=void 0===l||l,d=i.altAxis,u=void 0!==d&&d,f=i.boundary,p=i.rootBoundary,m=i.altBoundary,g=i.padding,_=i.tether,b=void 0===_||_,v=i.tetherOffset,y=void 0===v?0:v,w=_t(e,{boundary:f,rootBoundary:p,padding:g,altBoundary:m}),E=I(e.placement),A=Z(e.placement),T=!A,C=Q(E),O="x"===C?"y":"x",x=e.modifiersData.popperOffsets,k=e.rects.reference,L=e.rects.popper,S="function"==typeof y?y(Object.assign({},e.rects,{placement:e.placement})):y,D="number"==typeof S?{mainAxis:S,altAxis:S}:Object.assign({mainAxis:0,altAxis:0},S),$=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,M={x:0,y:0};if(x){if(h){var j,F="y"===C?n:r,H="y"===C?s:o,W="y"===C?"height":"width",z=x[C],R=z+w[F],q=z-w[H],V=b?-L[W]/2:0,Y=A===c?k[W]:L[W],U=A===c?-L[W]:-k[W],G=e.elements.arrow,J=b&&G?B(G):{width:0,height:0},tt=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},et=tt[F],it=tt[H],nt=X(0,k[W],J[W]),st=T?k[W]/2-V-nt-et-D.mainAxis:Y-nt-et-D.mainAxis,ot=T?-k[W]/2+V+nt+it+D.mainAxis:U+nt+it+D.mainAxis,rt=e.elements.arrow&&K(e.elements.arrow),at=rt?"y"===C?rt.clientTop||0:rt.clientLeft||0:0,lt=null!=(j=null==$?void 0:$[C])?j:0,ct=z+ot-lt,ht=X(b?P(R,z+st-lt-at):R,z,b?N(q,ct):q);x[C]=ht,M[C]=ht-z}if(u){var dt,ut="x"===C?n:r,ft="x"===C?s:o,pt=x[O],mt="y"===O?"height":"width",gt=pt+w[ut],bt=pt-w[ft],vt=-1!==[n,r].indexOf(E),yt=null!=(dt=null==$?void 0:$[O])?dt:0,wt=vt?gt:pt-k[mt]-L[mt]-yt+D.altAxis,Et=vt?pt+k[mt]+L[mt]-yt-D.altAxis:bt,At=b&&vt?function(t,e,i){var n=X(t,e,i);return n>i?i:n}(wt,pt,Et):X(b?wt:gt,pt,b?Et:bt);x[O]=At,M[O]=At-pt}e.modifiersData[a]=M}},requiresIfExists:["offset"]};function Ct(t,e,i){void 0===i&&(i=!1);var n,s,o=S(e),r=S(e)&&function(t){var e=t.getBoundingClientRect(),i=M(e.width)/t.offsetWidth||1,n=M(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=q(e),l=H(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==x(e)||dt(a))&&(c=(n=e)!==k(n)&&S(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:ct(n)),S(e)?((h=H(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=ht(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function Ot(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var xt={placement:"bottom",modifiers:[],strategy:"absolute"};function kt(){for(var t=arguments.length,e=new Array(t),i=0;iIt.has(t)&&It.get(t).get(e)||null,remove(t,e){if(!It.has(t))return;const i=It.get(t);i.delete(e),0===i.size&&It.delete(t)}},Pt="transitionend",Mt=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),jt=t=>{t.dispatchEvent(new Event(Pt))},Ft=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),Ht=t=>Ft(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(Mt(t)):null,Bt=t=>{if(!Ft(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},Wt=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),zt=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?zt(t.parentNode):null},Rt=()=>{},qt=t=>{t.offsetHeight},Vt=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Yt=[],Kt=()=>"rtl"===document.documentElement.dir,Qt=t=>{var e;e=()=>{const e=Vt();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(Yt.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of Yt)t()})),Yt.push(e)):e()},Xt=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,Ut=(t,e,i=!0)=>{if(!i)return void Xt(t);const n=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let s=!1;const o=({target:i})=>{i===e&&(s=!0,e.removeEventListener(Pt,o),Xt(t))};e.addEventListener(Pt,o),setTimeout((()=>{s||jt(e)}),n)},Gt=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},Jt=/[^.]*(?=\..*)\.|.*/,Zt=/\..*/,te=/::\d+$/,ee={};let ie=1;const ne={mouseenter:"mouseover",mouseleave:"mouseout"},se=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function oe(t,e){return e&&`${e}::${ie++}`||t.uidEvent||ie++}function re(t){const e=oe(t);return t.uidEvent=e,ee[e]=ee[e]||{},ee[e]}function ae(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function le(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=ue(t);return se.has(o)||(o=t),[n,s,o]}function ce(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=le(e,i,n);if(e in ne){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=re(t),c=l[a]||(l[a]={}),h=ae(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=oe(r,e.replace(Jt,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return pe(s,{delegateTarget:r}),n.oneOff&&fe.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return pe(n,{delegateTarget:t}),i.oneOff&&fe.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function he(t,e,i,n,s){const o=ae(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function de(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&he(t,e,i,r.callable,r.delegationSelector)}function ue(t){return t=t.replace(Zt,""),ne[t]||t}const fe={on(t,e,i,n){ce(t,e,i,n,!1)},one(t,e,i,n){ce(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=le(e,i,n),a=r!==e,l=re(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))de(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(te,"");a&&!e.includes(s)||he(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;he(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=Vt();let s=null,o=!0,r=!0,a=!1;e!==ue(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=pe(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function pe(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function me(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function ge(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const _e={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${ge(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${ge(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=me(t.dataset[n])}return e},getDataAttribute:(t,e)=>me(t.getAttribute(`data-bs-${ge(e)}`))};class be{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=Ft(e)?_e.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...Ft(e)?_e.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],o=Ft(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${o}" but expected type "${s}".`)}var i}}class ve extends be{constructor(t,e){super(),(t=Ht(t))&&(this._element=t,this._config=this._getConfig(e),Nt.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Nt.remove(this._element,this.constructor.DATA_KEY),fe.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){Ut(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return Nt.get(Ht(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const ye=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e?e.split(",").map((t=>Mt(t))).join(","):null},we={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!Wt(t)&&Bt(t)))},getSelectorFromElement(t){const e=ye(t);return e&&we.findOne(e)?e:null},getElementFromSelector(t){const e=ye(t);return e?we.findOne(e):null},getMultipleElementsFromSelector(t){const e=ye(t);return e?we.find(e):[]}},Ee=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;fe.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),Wt(this))return;const s=we.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},Ae=".bs.alert",Te=`close${Ae}`,Ce=`closed${Ae}`;class Oe extends ve{static get NAME(){return"alert"}close(){if(fe.trigger(this._element,Te).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),fe.trigger(this._element,Ce),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Oe.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}Ee(Oe,"close"),Qt(Oe);const xe='[data-bs-toggle="button"]';class ke extends ve{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=ke.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}fe.on(document,"click.bs.button.data-api",xe,(t=>{t.preventDefault();const e=t.target.closest(xe);ke.getOrCreateInstance(e).toggle()})),Qt(ke);const Le=".bs.swipe",Se=`touchstart${Le}`,De=`touchmove${Le}`,$e=`touchend${Le}`,Ie=`pointerdown${Le}`,Ne=`pointerup${Le}`,Pe={endCallback:null,leftCallback:null,rightCallback:null},Me={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class je extends be{constructor(t,e){super(),this._element=t,t&&je.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Pe}static get DefaultType(){return Me}static get NAME(){return"swipe"}dispose(){fe.off(this._element,Le)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),Xt(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&Xt(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(fe.on(this._element,Ie,(t=>this._start(t))),fe.on(this._element,Ne,(t=>this._end(t))),this._element.classList.add("pointer-event")):(fe.on(this._element,Se,(t=>this._start(t))),fe.on(this._element,De,(t=>this._move(t))),fe.on(this._element,$e,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const Fe=".bs.carousel",He=".data-api",Be="ArrowLeft",We="ArrowRight",ze="next",Re="prev",qe="left",Ve="right",Ye=`slide${Fe}`,Ke=`slid${Fe}`,Qe=`keydown${Fe}`,Xe=`mouseenter${Fe}`,Ue=`mouseleave${Fe}`,Ge=`dragstart${Fe}`,Je=`load${Fe}${He}`,Ze=`click${Fe}${He}`,ti="carousel",ei="active",ii=".active",ni=".carousel-item",si=ii+ni,oi={[Be]:Ve,[We]:qe},ri={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},ai={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class li extends ve{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=we.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===ti&&this.cycle()}static get Default(){return ri}static get DefaultType(){return ai}static get NAME(){return"carousel"}next(){this._slide(ze)}nextWhenVisible(){!document.hidden&&Bt(this._element)&&this.next()}prev(){this._slide(Re)}pause(){this._isSliding&&jt(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?fe.one(this._element,Ke,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void fe.one(this._element,Ke,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?ze:Re;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&fe.on(this._element,Qe,(t=>this._keydown(t))),"hover"===this._config.pause&&(fe.on(this._element,Xe,(()=>this.pause())),fe.on(this._element,Ue,(()=>this._maybeEnableCycle()))),this._config.touch&&je.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of we.find(".carousel-item img",this._element))fe.on(t,Ge,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(qe)),rightCallback:()=>this._slide(this._directionToOrder(Ve)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new je(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=oi[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=we.findOne(ii,this._indicatorsElement);e.classList.remove(ei),e.removeAttribute("aria-current");const i=we.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(ei),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===ze,s=e||Gt(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>fe.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(Ye).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),qt(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(ei),i.classList.remove(ei,c,l),this._isSliding=!1,r(Ke)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return we.findOne(si,this._element)}_getItems(){return we.find(ni,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return Kt()?t===qe?Re:ze:t===qe?ze:Re}_orderToDirection(t){return Kt()?t===Re?qe:Ve:t===Re?Ve:qe}static jQueryInterface(t){return this.each((function(){const e=li.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}fe.on(document,Ze,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=we.getElementFromSelector(this);if(!e||!e.classList.contains(ti))return;t.preventDefault();const i=li.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===_e.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),fe.on(window,Je,(()=>{const t=we.find('[data-bs-ride="carousel"]');for(const e of t)li.getOrCreateInstance(e)})),Qt(li);const ci=".bs.collapse",hi=`show${ci}`,di=`shown${ci}`,ui=`hide${ci}`,fi=`hidden${ci}`,pi=`click${ci}.data-api`,mi="show",gi="collapse",_i="collapsing",bi=`:scope .${gi} .${gi}`,vi='[data-bs-toggle="collapse"]',yi={parent:null,toggle:!0},wi={parent:"(null|element)",toggle:"boolean"};class Ei extends ve{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=we.find(vi);for(const t of i){const e=we.getSelectorFromElement(t),i=we.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return yi}static get DefaultType(){return wi}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Ei.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(fe.trigger(this._element,hi).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(gi),this._element.classList.add(_i),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(_i),this._element.classList.add(gi,mi),this._element.style[e]="",fe.trigger(this._element,di)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(fe.trigger(this._element,ui).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,qt(this._element),this._element.classList.add(_i),this._element.classList.remove(gi,mi);for(const t of this._triggerArray){const e=we.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(_i),this._element.classList.add(gi),fe.trigger(this._element,fi)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(mi)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=Ht(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(vi);for(const e of t){const t=we.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=we.find(bi,this._config.parent);return we.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Ei.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}fe.on(document,pi,vi,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of we.getMultipleElementsFromSelector(this))Ei.getOrCreateInstance(t,{toggle:!1}).toggle()})),Qt(Ei);const Ai="dropdown",Ti=".bs.dropdown",Ci=".data-api",Oi="ArrowUp",xi="ArrowDown",ki=`hide${Ti}`,Li=`hidden${Ti}`,Si=`show${Ti}`,Di=`shown${Ti}`,$i=`click${Ti}${Ci}`,Ii=`keydown${Ti}${Ci}`,Ni=`keyup${Ti}${Ci}`,Pi="show",Mi='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',ji=`${Mi}.${Pi}`,Fi=".dropdown-menu",Hi=Kt()?"top-end":"top-start",Bi=Kt()?"top-start":"top-end",Wi=Kt()?"bottom-end":"bottom-start",zi=Kt()?"bottom-start":"bottom-end",Ri=Kt()?"left-start":"right-start",qi=Kt()?"right-start":"left-start",Vi={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Yi={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class Ki extends ve{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=we.next(this._element,Fi)[0]||we.prev(this._element,Fi)[0]||we.findOne(Fi,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return Vi}static get DefaultType(){return Yi}static get NAME(){return Ai}toggle(){return this._isShown()?this.hide():this.show()}show(){if(Wt(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!fe.trigger(this._element,Si,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))fe.on(t,"mouseover",Rt);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Pi),this._element.classList.add(Pi),fe.trigger(this._element,Di,t)}}hide(){if(Wt(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!fe.trigger(this._element,ki,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))fe.off(t,"mouseover",Rt);this._popper&&this._popper.destroy(),this._menu.classList.remove(Pi),this._element.classList.remove(Pi),this._element.setAttribute("aria-expanded","false"),_e.removeDataAttribute(this._menu,"popper"),fe.trigger(this._element,Li,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!Ft(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ai.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===e)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:Ft(this._config.reference)?t=Ht(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const i=this._getPopperConfig();this._popper=Dt(t,this._menu,i)}_isShown(){return this._menu.classList.contains(Pi)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return Ri;if(t.classList.contains("dropstart"))return qi;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?Bi:Hi:e?zi:Wi}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(_e.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...Xt(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=we.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>Bt(t)));i.length&&Gt(i,e,t===xi,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=Ki.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=we.find(ji);for(const i of e){const e=Ki.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Oi,xi].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Mi)?this:we.prev(this,Mi)[0]||we.next(this,Mi)[0]||we.findOne(Mi,t.delegateTarget.parentNode),o=Ki.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}fe.on(document,Ii,Mi,Ki.dataApiKeydownHandler),fe.on(document,Ii,Fi,Ki.dataApiKeydownHandler),fe.on(document,$i,Ki.clearMenus),fe.on(document,Ni,Ki.clearMenus),fe.on(document,$i,Mi,(function(t){t.preventDefault(),Ki.getOrCreateInstance(this).toggle()})),Qt(Ki);const Qi="backdrop",Xi="show",Ui=`mousedown.bs.${Qi}`,Gi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Ji={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Zi extends be{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Gi}static get DefaultType(){return Ji}static get NAME(){return Qi}show(t){if(!this._config.isVisible)return void Xt(t);this._append();const e=this._getElement();this._config.isAnimated&&qt(e),e.classList.add(Xi),this._emulateAnimation((()=>{Xt(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Xi),this._emulateAnimation((()=>{this.dispose(),Xt(t)}))):Xt(t)}dispose(){this._isAppended&&(fe.off(this._element,Ui),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=Ht(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),fe.on(t,Ui,(()=>{Xt(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){Ut(t,this._getElement(),this._config.isAnimated)}}const tn=".bs.focustrap",en=`focusin${tn}`,nn=`keydown.tab${tn}`,sn="backward",on={autofocus:!0,trapElement:null},rn={autofocus:"boolean",trapElement:"element"};class an extends be{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return on}static get DefaultType(){return rn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),fe.off(document,tn),fe.on(document,en,(t=>this._handleFocusin(t))),fe.on(document,nn,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,fe.off(document,tn))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=we.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===sn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?sn:"forward")}}const ln=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",cn=".sticky-top",hn="padding-right",dn="margin-right";class un{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,hn,(e=>e+t)),this._setElementAttributes(ln,hn,(e=>e+t)),this._setElementAttributes(cn,dn,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,hn),this._resetElementAttributes(ln,hn),this._resetElementAttributes(cn,dn)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&_e.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=_e.getDataAttribute(t,e);null!==i?(_e.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(Ft(t))e(t);else for(const i of we.find(t,this._element))e(i)}}const fn=".bs.modal",pn=`hide${fn}`,mn=`hidePrevented${fn}`,gn=`hidden${fn}`,_n=`show${fn}`,bn=`shown${fn}`,vn=`resize${fn}`,yn=`click.dismiss${fn}`,wn=`mousedown.dismiss${fn}`,En=`keydown.dismiss${fn}`,An=`click${fn}.data-api`,Tn="modal-open",Cn="show",On="modal-static",xn={backdrop:!0,focus:!0,keyboard:!0},kn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Ln extends ve{constructor(t,e){super(t,e),this._dialog=we.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new un,this._addEventListeners()}static get Default(){return xn}static get DefaultType(){return kn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||fe.trigger(this._element,_n,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Tn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(fe.trigger(this._element,pn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Cn),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){fe.off(window,fn),fe.off(this._dialog,fn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Zi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new an({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=we.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),qt(this._element),this._element.classList.add(Cn),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,fe.trigger(this._element,bn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){fe.on(this._element,En,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),fe.on(window,vn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),fe.on(this._element,wn,(t=>{fe.one(this._element,yn,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(Tn),this._resetAdjustments(),this._scrollBar.reset(),fe.trigger(this._element,gn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(fe.trigger(this._element,mn).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(On)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(On),this._queueCallback((()=>{this._element.classList.remove(On),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=Kt()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=Kt()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Ln.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}fe.on(document,An,'[data-bs-toggle="modal"]',(function(t){const e=we.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),fe.one(e,_n,(t=>{t.defaultPrevented||fe.one(e,gn,(()=>{Bt(this)&&this.focus()}))}));const i=we.findOne(".modal.show");i&&Ln.getInstance(i).hide(),Ln.getOrCreateInstance(e).toggle(this)})),Ee(Ln),Qt(Ln);const Sn=".bs.offcanvas",Dn=".data-api",$n=`load${Sn}${Dn}`,In="show",Nn="showing",Pn="hiding",Mn=".offcanvas.show",jn=`show${Sn}`,Fn=`shown${Sn}`,Hn=`hide${Sn}`,Bn=`hidePrevented${Sn}`,Wn=`hidden${Sn}`,zn=`resize${Sn}`,Rn=`click${Sn}${Dn}`,qn=`keydown.dismiss${Sn}`,Vn={backdrop:!0,keyboard:!0,scroll:!1},Yn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Kn extends ve{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Vn}static get DefaultType(){return Yn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||fe.trigger(this._element,jn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new un).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Nn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(In),this._element.classList.remove(Nn),fe.trigger(this._element,Fn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(fe.trigger(this._element,Hn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(Pn),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(In,Pn),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new un).reset(),fe.trigger(this._element,Wn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Zi({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():fe.trigger(this._element,Bn)}:null})}_initializeFocusTrap(){return new an({trapElement:this._element})}_addEventListeners(){fe.on(this._element,qn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():fe.trigger(this._element,Bn))}))}static jQueryInterface(t){return this.each((function(){const e=Kn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}fe.on(document,Rn,'[data-bs-toggle="offcanvas"]',(function(t){const e=we.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),Wt(this))return;fe.one(e,Wn,(()=>{Bt(this)&&this.focus()}));const i=we.findOne(Mn);i&&i!==e&&Kn.getInstance(i).hide(),Kn.getOrCreateInstance(e).toggle(this)})),fe.on(window,$n,(()=>{for(const t of we.find(Mn))Kn.getOrCreateInstance(t).show()})),fe.on(window,zn,(()=>{for(const t of we.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&Kn.getOrCreateInstance(t).hide()})),Ee(Kn),Qt(Kn);const Qn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Xn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Un=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Gn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Xn.has(i)||Boolean(Un.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Jn={allowList:Qn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"

"},Zn={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},ts={entry:"(string|element|function|null)",selector:"(string|element)"};class es extends be{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Jn}static get DefaultType(){return Zn}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},ts)}_setContent(t,e,i){const n=we.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?Ft(e)?this._putElementInTemplate(Ht(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Gn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return Xt(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const is=new Set(["sanitize","allowList","sanitizeFn"]),ns="fade",ss="show",os=".tooltip-inner",rs=".modal",as="hide.bs.modal",ls="hover",cs="focus",hs={AUTO:"auto",TOP:"top",RIGHT:Kt()?"left":"right",BOTTOM:"bottom",LEFT:Kt()?"right":"left"},ds={allowList:Qn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},us={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class fs extends ve{constructor(t,i){if(void 0===e)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,i),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return ds}static get DefaultType(){return us}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),fe.off(this._element.closest(rs),as,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=fe.trigger(this._element,this.constructor.eventName("show")),e=(zt(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),fe.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(ss),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))fe.on(t,"mouseover",Rt);this._queueCallback((()=>{fe.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!fe.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(ss),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))fe.off(t,"mouseover",Rt);this._activeTrigger.click=!1,this._activeTrigger[cs]=!1,this._activeTrigger[ls]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),fe.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ns,ss),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ns),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new es({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[os]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ns)}_isShown(){return this.tip&&this.tip.classList.contains(ss)}_createPopper(t){const e=Xt(this._config.placement,[this,t,this._element]),i=hs[e.toUpperCase()];return Dt(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return Xt(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...Xt(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)fe.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ls?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ls?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");fe.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?cs:ls]=!0,e._enter()})),fe.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?cs:ls]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},fe.on(this._element.closest(rs),as,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=_e.getDataAttributes(this._element);for(const t of Object.keys(e))is.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:Ht(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=fs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}Qt(fs);const ps=".popover-header",ms=".popover-body",gs={...fs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},_s={...fs.DefaultType,content:"(null|string|element|function)"};class bs extends fs{static get Default(){return gs}static get DefaultType(){return _s}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[ps]:this._getTitle(),[ms]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=bs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}Qt(bs);const vs=".bs.scrollspy",ys=`activate${vs}`,ws=`click${vs}`,Es=`load${vs}.data-api`,As="active",Ts="[href]",Cs=".nav-link",Os=`${Cs}, .nav-item > ${Cs}, .list-group-item`,xs={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},ks={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Ls extends ve{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return xs}static get DefaultType(){return ks}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=Ht(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(fe.off(this._config.target,ws),fe.on(this._config.target,ws,Ts,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=we.find(Ts,this._config.target);for(const e of t){if(!e.hash||Wt(e))continue;const t=we.findOne(decodeURI(e.hash),this._element);Bt(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(As),this._activateParents(t),fe.trigger(this._element,ys,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))we.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(As);else for(const e of we.parents(t,".nav, .list-group"))for(const t of we.prev(e,Os))t.classList.add(As)}_clearActiveClass(t){t.classList.remove(As);const e=we.find(`${Ts}.${As}`,t);for(const t of e)t.classList.remove(As)}static jQueryInterface(t){return this.each((function(){const e=Ls.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}fe.on(window,Es,(()=>{for(const t of we.find('[data-bs-spy="scroll"]'))Ls.getOrCreateInstance(t)})),Qt(Ls);const Ss=".bs.tab",Ds=`hide${Ss}`,$s=`hidden${Ss}`,Is=`show${Ss}`,Ns=`shown${Ss}`,Ps=`click${Ss}`,Ms=`keydown${Ss}`,js=`load${Ss}`,Fs="ArrowLeft",Hs="ArrowRight",Bs="ArrowUp",Ws="ArrowDown",zs="Home",Rs="End",qs="active",Vs="fade",Ys="show",Ks=".dropdown-toggle",Qs=`:not(${Ks})`,Xs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Us=`.nav-link${Qs}, .list-group-item${Qs}, [role="tab"]${Qs}, ${Xs}`,Gs=`.${qs}[data-bs-toggle="tab"], .${qs}[data-bs-toggle="pill"], .${qs}[data-bs-toggle="list"]`;class Js extends ve{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),fe.on(this._element,Ms,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?fe.trigger(e,Ds,{relatedTarget:t}):null;fe.trigger(t,Is,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(qs),this._activate(we.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),fe.trigger(t,Ns,{relatedTarget:e})):t.classList.add(Ys)}),t,t.classList.contains(Vs)))}_deactivate(t,e){t&&(t.classList.remove(qs),t.blur(),this._deactivate(we.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),fe.trigger(t,$s,{relatedTarget:e})):t.classList.remove(Ys)}),t,t.classList.contains(Vs)))}_keydown(t){if(![Fs,Hs,Bs,Ws,zs,Rs].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!Wt(t)));let i;if([zs,Rs].includes(t.key))i=e[t.key===zs?0:e.length-1];else{const n=[Hs,Ws].includes(t.key);i=Gt(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Js.getOrCreateInstance(i).show())}_getChildren(){return we.find(Us,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=we.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=we.findOne(t,i);s&&s.classList.toggle(n,e)};n(Ks,qs),n(".dropdown-menu",Ys),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(qs)}_getInnerElement(t){return t.matches(Us)?t:we.findOne(Us,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Js.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}fe.on(document,Ps,Xs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),Wt(this)||Js.getOrCreateInstance(this).show()})),fe.on(window,js,(()=>{for(const t of we.find(Gs))Js.getOrCreateInstance(t)})),Qt(Js);const Zs=".bs.toast",to=`mouseover${Zs}`,eo=`mouseout${Zs}`,io=`focusin${Zs}`,no=`focusout${Zs}`,so=`hide${Zs}`,oo=`hidden${Zs}`,ro=`show${Zs}`,ao=`shown${Zs}`,lo="hide",co="show",ho="showing",uo={animation:"boolean",autohide:"boolean",delay:"number"},fo={animation:!0,autohide:!0,delay:5e3};class po extends ve{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return fo}static get DefaultType(){return uo}static get NAME(){return"toast"}show(){fe.trigger(this._element,ro).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(lo),qt(this._element),this._element.classList.add(co,ho),this._queueCallback((()=>{this._element.classList.remove(ho),fe.trigger(this._element,ao),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(fe.trigger(this._element,so).defaultPrevented||(this._element.classList.add(ho),this._queueCallback((()=>{this._element.classList.add(lo),this._element.classList.remove(ho,co),fe.trigger(this._element,oo)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(co),super.dispose()}isShown(){return this._element.classList.contains(co)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){fe.on(this._element,to,(t=>this._onInteraction(t,!0))),fe.on(this._element,eo,(t=>this._onInteraction(t,!1))),fe.on(this._element,io,(t=>this._onInteraction(t,!0))),fe.on(this._element,no,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=po.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}function mo(t){"loading"!=document.readyState?t():document.addEventListener("DOMContentLoaded",t)}Ee(po),Qt(po),mo((function(){[].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')).map((function(t){return new fs(t,{delay:{show:500,hide:100}})}))})),mo((function(){document.getElementById("pst-back-to-top").addEventListener("click",(function(){document.body.scrollTop=0,document.documentElement.scrollTop=0}))})),mo((function(){var t=document.getElementById("pst-back-to-top"),e=document.getElementsByClassName("bd-header")[0].getBoundingClientRect();window.addEventListener("scroll",(function(){this.oldScroll>this.scrollY&&this.scrollY>e.bottom?t.style.display="block":t.style.display="none",this.oldScroll=this.scrollY}))})),window.bootstrap=i})(); +//# sourceMappingURL=bootstrap.js.map \ No newline at end of file diff --git a/_static/scripts/bootstrap.js.LICENSE.txt b/_static/scripts/bootstrap.js.LICENSE.txt new file mode 100644 index 00000000..28755c2c --- /dev/null +++ b/_static/scripts/bootstrap.js.LICENSE.txt @@ -0,0 +1,5 @@ +/*! + * Bootstrap v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ diff --git a/_static/scripts/bootstrap.js.map b/_static/scripts/bootstrap.js.map new file mode 100644 index 00000000..e9e81589 --- /dev/null +++ b/_static/scripts/bootstrap.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scripts/bootstrap.js","mappings":"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","sources":["webpack://pydata_sphinx_theme/webpack/bootstrap","webpack://pydata_sphinx_theme/webpack/runtime/define property getters","webpack://pydata_sphinx_theme/webpack/runtime/hasOwnProperty shorthand","webpack://pydata_sphinx_theme/webpack/runtime/make namespace object","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/enums.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/math.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/within.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/createPopper.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/popper.js","webpack://pydata_sphinx_theme/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://pydata_sphinx_theme/./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/mixin.js","webpack://pydata_sphinx_theme/./src/pydata_sphinx_theme/assets/scripts/bootstrap.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","/*!\n * Bootstrap v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\nimport * as Popper from '@popperjs/core';\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * Constants\n */\n\nconst elementMap = new Map();\nconst Data = {\n set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n const instanceMap = elementMap.get(element);\n\n // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);\n return;\n }\n instanceMap.set(key, instance);\n },\n get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n return null;\n },\n remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n const instanceMap = elementMap.get(element);\n instanceMap.delete(key);\n\n // free up element references if there are no instances left for an element\n if (instanceMap.size === 0) {\n elementMap.delete(element);\n }\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000;\nconst MILLISECONDS_MULTIPLIER = 1000;\nconst TRANSITION_END = 'transitionend';\n\n/**\n * Properly escape IDs selectors to handle weird IDs\n * @param {string} selector\n * @returns {string}\n */\nconst parseSelector = selector => {\n if (selector && window.CSS && window.CSS.escape) {\n // document.querySelector needs escaping to handle IDs (html5+) containing for instance /\n selector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`);\n }\n return selector;\n};\n\n// Shout-out Angus Croll (https://goo.gl/pxwQGp)\nconst toType = object => {\n if (object === null || object === undefined) {\n return `${object}`;\n }\n return Object.prototype.toString.call(object).match(/\\s([a-z]+)/i)[1].toLowerCase();\n};\n\n/**\n * Public Util API\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID);\n } while (document.getElementById(prefix));\n return prefix;\n};\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0;\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element);\n const floatTransitionDuration = Number.parseFloat(transitionDuration);\n const floatTransitionDelay = Number.parseFloat(transitionDelay);\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n};\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END));\n};\nconst isElement = object => {\n if (!object || typeof object !== 'object') {\n return false;\n }\n if (typeof object.jquery !== 'undefined') {\n object = object[0];\n }\n return typeof object.nodeType !== 'undefined';\n};\nconst getElement = object => {\n // it's a jQuery object or a node element\n if (isElement(object)) {\n return object.jquery ? object[0] : object;\n }\n if (typeof object === 'string' && object.length > 0) {\n return document.querySelector(parseSelector(object));\n }\n return null;\n};\nconst isVisible = element => {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';\n // Handle `details` element as its content may falsie appear visible when it is closed\n const closedDetails = element.closest('details:not([open])');\n if (!closedDetails) {\n return elementIsVisible;\n }\n if (closedDetails !== element) {\n const summary = element.closest('summary');\n if (summary && summary.parentNode !== closedDetails) {\n return false;\n }\n if (summary === null) {\n return false;\n }\n }\n return elementIsVisible;\n};\nconst isDisabled = element => {\n if (!element || element.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n if (element.classList.contains('disabled')) {\n return true;\n }\n if (typeof element.disabled !== 'undefined') {\n return element.disabled;\n }\n return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';\n};\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null;\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n if (element instanceof ShadowRoot) {\n return element;\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null;\n }\n return findShadowRoot(element.parentNode);\n};\nconst noop = () => {};\n\n/**\n * Trick to restart an element's animation\n *\n * @param {HTMLElement} element\n * @return void\n *\n * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\n */\nconst reflow = element => {\n element.offsetHeight; // eslint-disable-line no-unused-expressions\n};\nconst getjQuery = () => {\n if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return window.jQuery;\n }\n return null;\n};\nconst DOMContentLoadedCallbacks = [];\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', () => {\n for (const callback of DOMContentLoadedCallbacks) {\n callback();\n }\n });\n }\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n};\nconst isRTL = () => document.documentElement.dir === 'rtl';\nconst defineJQueryPlugin = plugin => {\n onDOMContentLoaded(() => {\n const $ = getjQuery();\n /* istanbul ignore if */\n if ($) {\n const name = plugin.NAME;\n const JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n $.fn[name].noConflict = () => {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n};\nconst execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {\n return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;\n};\nconst executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n const durationPadding = 5;\n const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n let called = false;\n const handler = ({\n target\n }) => {\n if (target !== transitionElement) {\n return;\n }\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n};\n\n/**\n * Return the previous/next element of a list.\n *\n * @param {array} list The list of elements\n * @param activeElement The active element\n * @param shouldGetNext Choose to get next or previous element\n * @param isCycleAllowed\n * @return {Element|elem} The proper element\n */\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\n const listLength = list.length;\n let index = list.indexOf(activeElement);\n\n // if the element does not exist in the list return an element\n // depending on the direction and if cycle is allowed\n if (index === -1) {\n return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];\n }\n index += shouldGetNext ? 1 : -1;\n if (isCycleAllowed) {\n index = (index + listLength) % listLength;\n }\n return list[Math.max(0, Math.min(index, listLength - 1))];\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/;\nconst stripNameRegex = /\\..*/;\nconst stripUidRegex = /::\\d+$/;\nconst eventRegistry = {}; // Events storage\nlet uidEvent = 1;\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n};\nconst nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);\n\n/**\n * Private methods\n */\n\nfunction makeEventUid(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;\n}\nfunction getElementEvents(element) {\n const uid = makeEventUid(element);\n element.uidEvent = uid;\n eventRegistry[uid] = eventRegistry[uid] || {};\n return eventRegistry[uid];\n}\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n hydrateObj(event, {\n delegateTarget: element\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn);\n }\n return fn.apply(element, [event]);\n };\n}\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector);\n for (let {\n target\n } = event; target && target !== this; target = target.parentNode) {\n for (const domElement of domElements) {\n if (domElement !== target) {\n continue;\n }\n hydrateObj(event, {\n delegateTarget: target\n });\n if (handler.oneOff) {\n EventHandler.off(element, event.type, selector, fn);\n }\n return fn.apply(target, [event]);\n }\n }\n };\n}\nfunction findHandler(events, callable, delegationSelector = null) {\n return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);\n}\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\n const isDelegated = typeof handler === 'string';\n // TODO: tooltip passes `false` instead of selector, so we need to check\n const callable = isDelegated ? delegationFunction : handler || delegationFunction;\n let typeEvent = getTypeEvent(originalTypeEvent);\n if (!nativeEvents.has(typeEvent)) {\n typeEvent = originalTypeEvent;\n }\n return [isDelegated, callable, typeEvent];\n}\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n\n // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\n // this prevents the handler from being dispatched the same way as mouseover or mouseout does\n if (originalTypeEvent in customEvents) {\n const wrapFunction = fn => {\n return function (event) {\n if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {\n return fn.call(this, event);\n }\n };\n };\n callable = wrapFunction(callable);\n }\n const events = getElementEvents(element);\n const handlers = events[typeEvent] || (events[typeEvent] = {});\n const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);\n if (previousFunction) {\n previousFunction.oneOff = previousFunction.oneOff && oneOff;\n return;\n }\n const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));\n const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);\n fn.delegationSelector = isDelegated ? handler : null;\n fn.callable = callable;\n fn.oneOff = oneOff;\n fn.uidEvent = uid;\n handlers[uid] = fn;\n element.addEventListener(typeEvent, fn, isDelegated);\n}\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector);\n if (!fn) {\n return;\n }\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));\n delete events[typeEvent][fn.uidEvent];\n}\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {};\n for (const [handlerKey, event] of Object.entries(storeElementEvent)) {\n if (handlerKey.includes(namespace)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n}\nfunction getTypeEvent(event) {\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n event = event.replace(stripNameRegex, '');\n return customEvents[event] || event;\n}\nconst EventHandler = {\n on(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, false);\n },\n one(element, event, handler, delegationFunction) {\n addHandler(element, event, handler, delegationFunction, true);\n },\n off(element, originalTypeEvent, handler, delegationFunction) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return;\n }\n const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);\n const inNamespace = typeEvent !== originalTypeEvent;\n const events = getElementEvents(element);\n const storeElementEvent = events[typeEvent] || {};\n const isNamespace = originalTypeEvent.startsWith('.');\n if (typeof callable !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!Object.keys(storeElementEvent).length) {\n return;\n }\n removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);\n return;\n }\n if (isNamespace) {\n for (const elementEvent of Object.keys(events)) {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));\n }\n }\n for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\n const handlerKey = keyHandlers.replace(stripUidRegex, '');\n if (!inNamespace || originalTypeEvent.includes(handlerKey)) {\n removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);\n }\n }\n },\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null;\n }\n const $ = getjQuery();\n const typeEvent = getTypeEvent(event);\n const inNamespace = event !== typeEvent;\n let jQueryEvent = null;\n let bubbles = true;\n let nativeDispatch = true;\n let defaultPrevented = false;\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args);\n $(element).trigger(jQueryEvent);\n bubbles = !jQueryEvent.isPropagationStopped();\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();\n defaultPrevented = jQueryEvent.isDefaultPrevented();\n }\n const evt = hydrateObj(new Event(event, {\n bubbles,\n cancelable: true\n }), args);\n if (defaultPrevented) {\n evt.preventDefault();\n }\n if (nativeDispatch) {\n element.dispatchEvent(evt);\n }\n if (evt.defaultPrevented && jQueryEvent) {\n jQueryEvent.preventDefault();\n }\n return evt;\n }\n};\nfunction hydrateObj(obj, meta = {}) {\n for (const [key, value] of Object.entries(meta)) {\n try {\n obj[key] = value;\n } catch (_unused) {\n Object.defineProperty(obj, key, {\n configurable: true,\n get() {\n return value;\n }\n });\n }\n }\n return obj;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(value) {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n if (value === Number(value).toString()) {\n return Number(value);\n }\n if (value === '' || value === 'null') {\n return null;\n }\n if (typeof value !== 'string') {\n return value;\n }\n try {\n return JSON.parse(decodeURIComponent(value));\n } catch (_unused) {\n return value;\n }\n}\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);\n}\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);\n },\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);\n },\n getDataAttributes(element) {\n if (!element) {\n return {};\n }\n const attributes = {};\n const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));\n for (const key of bsKeys) {\n let pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n }\n return attributes;\n },\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/config.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Class definition\n */\n\nclass Config {\n // Getters\n static get Default() {\n return {};\n }\n static get DefaultType() {\n return {};\n }\n static get NAME() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n return config;\n }\n _mergeConfigObj(config, element) {\n const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse\n\n return {\n ...this.constructor.Default,\n ...(typeof jsonConfig === 'object' ? jsonConfig : {}),\n ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),\n ...(typeof config === 'object' ? config : {})\n };\n }\n _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {\n for (const [property, expectedTypes] of Object.entries(configTypes)) {\n const value = config[property];\n const valueType = isElement(value) ? 'element' : toType(value);\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option \"${property}\" provided type \"${valueType}\" but expected type \"${expectedTypes}\".`);\n }\n }\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst VERSION = '5.3.3';\n\n/**\n * Class definition\n */\n\nclass BaseComponent extends Config {\n constructor(element, config) {\n super();\n element = getElement(element);\n if (!element) {\n return;\n }\n this._element = element;\n this._config = this._getConfig(config);\n Data.set(this._element, this.constructor.DATA_KEY, this);\n }\n\n // Public\n dispose() {\n Data.remove(this._element, this.constructor.DATA_KEY);\n EventHandler.off(this._element, this.constructor.EVENT_KEY);\n for (const propertyName of Object.getOwnPropertyNames(this)) {\n this[propertyName] = null;\n }\n }\n _queueCallback(callback, element, isAnimated = true) {\n executeAfterTransition(callback, element, isAnimated);\n }\n _getConfig(config) {\n config = this._mergeConfigObj(config, this._element);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n\n // Static\n static getInstance(element) {\n return Data.get(getElement(element), this.DATA_KEY);\n }\n static getOrCreateInstance(element, config = {}) {\n return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);\n }\n static get VERSION() {\n return VERSION;\n }\n static get DATA_KEY() {\n return `bs.${this.NAME}`;\n }\n static get EVENT_KEY() {\n return `.${this.DATA_KEY}`;\n }\n static eventName(name) {\n return `${name}${this.EVENT_KEY}`;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target');\n if (!selector || selector === '#') {\n let hrefAttribute = element.getAttribute('href');\n\n // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {\n return null;\n }\n\n // Just in case some CMS puts out a full URL with the anchor appended\n if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\n hrefAttribute = `#${hrefAttribute.split('#')[1]}`;\n }\n selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\n }\n return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null;\n};\nconst SelectorEngine = {\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector));\n },\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector);\n },\n children(element, selector) {\n return [].concat(...element.children).filter(child => child.matches(selector));\n },\n parents(element, selector) {\n const parents = [];\n let ancestor = element.parentNode.closest(selector);\n while (ancestor) {\n parents.push(ancestor);\n ancestor = ancestor.parentNode.closest(selector);\n }\n return parents;\n },\n prev(element, selector) {\n let previous = element.previousElementSibling;\n while (previous) {\n if (previous.matches(selector)) {\n return [previous];\n }\n previous = previous.previousElementSibling;\n }\n return [];\n },\n // TODO: this is now unused; remove later along with prev()\n next(element, selector) {\n let next = element.nextElementSibling;\n while (next) {\n if (next.matches(selector)) {\n return [next];\n }\n next = next.nextElementSibling;\n }\n return [];\n },\n focusableChildren(element) {\n const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable=\"true\"]'].map(selector => `${selector}:not([tabindex^=\"-\"])`).join(',');\n return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));\n },\n getSelectorFromElement(element) {\n const selector = getSelector(element);\n if (selector) {\n return SelectorEngine.findOne(selector) ? selector : null;\n }\n return null;\n },\n getElementFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.findOne(selector) : null;\n },\n getMultipleElementsFromSelector(element) {\n const selector = getSelector(element);\n return selector ? SelectorEngine.find(selector) : [];\n }\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/component-functions.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst enableDismissTrigger = (component, method = 'hide') => {\n const clickEvent = `click.dismiss${component.EVENT_KEY}`;\n const name = component.NAME;\n EventHandler.on(document, clickEvent, `[data-bs-dismiss=\"${name}\"]`, function (event) {\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);\n const instance = component.getOrCreateInstance(target);\n\n // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method\n instance[method]();\n });\n};\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$f = 'alert';\nconst DATA_KEY$a = 'bs.alert';\nconst EVENT_KEY$b = `.${DATA_KEY$a}`;\nconst EVENT_CLOSE = `close${EVENT_KEY$b}`;\nconst EVENT_CLOSED = `closed${EVENT_KEY$b}`;\nconst CLASS_NAME_FADE$5 = 'fade';\nconst CLASS_NAME_SHOW$8 = 'show';\n\n/**\n * Class definition\n */\n\nclass Alert extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$f;\n }\n\n // Public\n close() {\n const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);\n if (closeEvent.defaultPrevented) {\n return;\n }\n this._element.classList.remove(CLASS_NAME_SHOW$8);\n const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);\n this._queueCallback(() => this._destroyElement(), this._element, isAnimated);\n }\n\n // Private\n _destroyElement() {\n this._element.remove();\n EventHandler.trigger(this._element, EVENT_CLOSED);\n this.dispose();\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Alert.getOrCreateInstance(this);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nenableDismissTrigger(Alert, 'close');\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Alert);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$e = 'button';\nconst DATA_KEY$9 = 'bs.button';\nconst EVENT_KEY$a = `.${DATA_KEY$9}`;\nconst DATA_API_KEY$6 = '.data-api';\nconst CLASS_NAME_ACTIVE$3 = 'active';\nconst SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle=\"button\"]';\nconst EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;\n\n/**\n * Class definition\n */\n\nclass Button extends BaseComponent {\n // Getters\n static get NAME() {\n return NAME$e;\n }\n\n // Public\n toggle() {\n // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method\n this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Button.getOrCreateInstance(this);\n if (config === 'toggle') {\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {\n event.preventDefault();\n const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);\n const data = Button.getOrCreateInstance(button);\n data.toggle();\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Button);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$d = 'swipe';\nconst EVENT_KEY$9 = '.bs.swipe';\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;\nconst POINTER_TYPE_TOUCH = 'touch';\nconst POINTER_TYPE_PEN = 'pen';\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event';\nconst SWIPE_THRESHOLD = 40;\nconst Default$c = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n};\nconst DefaultType$c = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n};\n\n/**\n * Class definition\n */\n\nclass Swipe extends Config {\n constructor(element, config) {\n super();\n this._element = element;\n if (!element || !Swipe.isSupported()) {\n return;\n }\n this._config = this._getConfig(config);\n this._deltaX = 0;\n this._supportPointerEvents = Boolean(window.PointerEvent);\n this._initEvents();\n }\n\n // Getters\n static get Default() {\n return Default$c;\n }\n static get DefaultType() {\n return DefaultType$c;\n }\n static get NAME() {\n return NAME$d;\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY$9);\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX;\n return;\n }\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX;\n }\n }\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX;\n }\n this._handleSwipe();\n execute(this._config.endCallback);\n }\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\n }\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX);\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n const direction = absDeltaX / this._deltaX;\n this._deltaX = 0;\n if (!direction) {\n return;\n }\n execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\n }\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));\n }\n }\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$c = 'carousel';\nconst DATA_KEY$8 = 'bs.carousel';\nconst EVENT_KEY$8 = `.${DATA_KEY$8}`;\nconst DATA_API_KEY$5 = '.data-api';\nconst ARROW_LEFT_KEY$1 = 'ArrowLeft';\nconst ARROW_RIGHT_KEY$1 = 'ArrowRight';\nconst TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\nconst ORDER_NEXT = 'next';\nconst ORDER_PREV = 'prev';\nconst DIRECTION_LEFT = 'left';\nconst DIRECTION_RIGHT = 'right';\nconst EVENT_SLIDE = `slide${EVENT_KEY$8}`;\nconst EVENT_SLID = `slid${EVENT_KEY$8}`;\nconst EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;\nconst EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;\nconst EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;\nconst EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;\nconst CLASS_NAME_CAROUSEL = 'carousel';\nconst CLASS_NAME_ACTIVE$2 = 'active';\nconst CLASS_NAME_SLIDE = 'slide';\nconst CLASS_NAME_END = 'carousel-item-end';\nconst CLASS_NAME_START = 'carousel-item-start';\nconst CLASS_NAME_NEXT = 'carousel-item-next';\nconst CLASS_NAME_PREV = 'carousel-item-prev';\nconst SELECTOR_ACTIVE = '.active';\nconst SELECTOR_ITEM = '.carousel-item';\nconst SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;\nconst SELECTOR_ITEM_IMG = '.carousel-item img';\nconst SELECTOR_INDICATORS = '.carousel-indicators';\nconst SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\nconst SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\nconst KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT\n};\nconst Default$b = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n};\nconst DefaultType$b = {\n interval: '(number|boolean)',\n // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._interval = null;\n this._activeElement = null;\n this._isSliding = false;\n this.touchTimeout = null;\n this._swipeHelper = null;\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\n this._addEventListeners();\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$b;\n }\n static get DefaultType() {\n return DefaultType$b;\n }\n static get NAME() {\n return NAME$c;\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT);\n }\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next();\n }\n }\n prev() {\n this._slide(ORDER_PREV);\n }\n pause() {\n if (this._isSliding) {\n triggerTransitionEnd(this._element);\n }\n this._clearInterval();\n }\n cycle() {\n this._clearInterval();\n this._updateInterval();\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);\n }\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle());\n return;\n }\n this.cycle();\n }\n to(index) {\n const items = this._getItems();\n if (index > items.length - 1 || index < 0) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n const activeIndex = this._getItemIndex(this._getActive());\n if (activeIndex === index) {\n return;\n }\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n this._slide(order, items[index]);\n }\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose();\n }\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval;\n return config;\n }\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));\n }\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());\n EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());\n }\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners();\n }\n }\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());\n }\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return;\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause();\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout);\n }\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\n };\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n };\n this._swipeHelper = new Swipe(this._element, swipeConfig);\n }\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n const direction = KEY_TO_DIRECTION[event.key];\n if (direction) {\n event.preventDefault();\n this._slide(this._directionToOrder(direction));\n }\n }\n _getItemIndex(element) {\n return this._getItems().indexOf(element);\n }\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return;\n }\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);\n activeIndicator.removeAttribute('aria-current');\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement);\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);\n newActiveIndicator.setAttribute('aria-current', 'true');\n }\n }\n _updateInterval() {\n const element = this._activeElement || this._getActive();\n if (!element) {\n return;\n }\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n this._config.interval = elementInterval || this._config.defaultInterval;\n }\n _slide(order, element = null) {\n if (this._isSliding) {\n return;\n }\n const activeElement = this._getActive();\n const isNext = order === ORDER_NEXT;\n const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);\n if (nextElement === activeElement) {\n return;\n }\n const nextElementIndex = this._getItemIndex(nextElement);\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n });\n };\n const slideEvent = triggerEvent(EVENT_SLIDE);\n if (slideEvent.defaultPrevented) {\n return;\n }\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // TODO: change tests that use empty divs to avoid this check\n return;\n }\n const isCycling = Boolean(this._interval);\n this.pause();\n this._isSliding = true;\n this._setActiveIndicatorElement(nextElementIndex);\n this._activeElement = nextElement;\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n nextElement.classList.add(orderClassName);\n reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE$2);\n activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);\n this._isSliding = false;\n triggerEvent(EVENT_SLID);\n };\n this._queueCallback(completeCallBack, activeElement, this._isAnimated());\n if (isCycling) {\n this.cycle();\n }\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE);\n }\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n }\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element);\n }\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n }\n _directionToOrder(direction) {\n if (isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n _orderToDirection(order) {\n if (isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config);\n if (typeof config === 'number') {\n data.to(config);\n return;\n }\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n event.preventDefault();\n const carousel = Carousel.getOrCreateInstance(target);\n const slideIndex = this.getAttribute('data-bs-slide-to');\n if (slideIndex) {\n carousel.to(slideIndex);\n carousel._maybeEnableCycle();\n return;\n }\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next();\n carousel._maybeEnableCycle();\n return;\n }\n carousel.prev();\n carousel._maybeEnableCycle();\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel);\n }\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Carousel);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$b = 'collapse';\nconst DATA_KEY$7 = 'bs.collapse';\nconst EVENT_KEY$7 = `.${DATA_KEY$7}`;\nconst DATA_API_KEY$4 = '.data-api';\nconst EVENT_SHOW$6 = `show${EVENT_KEY$7}`;\nconst EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;\nconst EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;\nconst EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;\nconst EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;\nconst CLASS_NAME_SHOW$7 = 'show';\nconst CLASS_NAME_COLLAPSE = 'collapse';\nconst CLASS_NAME_COLLAPSING = 'collapsing';\nconst CLASS_NAME_COLLAPSED = 'collapsed';\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\nconst CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\nconst WIDTH = 'width';\nconst HEIGHT = 'height';\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\nconst SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle=\"collapse\"]';\nconst Default$a = {\n parent: null,\n toggle: true\n};\nconst DefaultType$a = {\n parent: '(null|element)',\n toggle: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n this._initializeChildren();\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n if (this._config.toggle) {\n this.toggle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$a;\n }\n static get DefaultType() {\n return DefaultType$a;\n }\n static get NAME() {\n return NAME$b;\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n let activeChildren = [];\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n const dimension = this._getDimension();\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN$6);\n };\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n this._queueCallback(complete, this._element, true);\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);\n if (startEvent.defaultPrevented) {\n return;\n }\n const dimension = this._getDimension();\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger);\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n EventHandler.trigger(this._element, EVENT_HIDDEN$6);\n };\n this._element.style[dimension] = '';\n this._queueCallback(complete, this._element, true);\n }\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW$7);\n }\n\n // Private\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n config.parent = getElement(config.parent);\n return config;\n }\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element);\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n }\n\n // Static\n static jQueryInterface(config) {\n const _config = {};\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {\n // preventDefault only for
elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Collapse);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$a = 'dropdown';\nconst DATA_KEY$6 = 'bs.dropdown';\nconst EVENT_KEY$6 = `.${DATA_KEY$6}`;\nconst DATA_API_KEY$3 = '.data-api';\nconst ESCAPE_KEY$2 = 'Escape';\nconst TAB_KEY$1 = 'Tab';\nconst ARROW_UP_KEY$1 = 'ArrowUp';\nconst ARROW_DOWN_KEY$1 = 'ArrowDown';\nconst RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button\n\nconst EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;\nconst EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;\nconst EVENT_SHOW$5 = `show${EVENT_KEY$6}`;\nconst EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;\nconst EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;\nconst CLASS_NAME_SHOW$6 = 'show';\nconst CLASS_NAME_DROPUP = 'dropup';\nconst CLASS_NAME_DROPEND = 'dropend';\nconst CLASS_NAME_DROPSTART = 'dropstart';\nconst CLASS_NAME_DROPUP_CENTER = 'dropup-center';\nconst CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';\nconst SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle=\"dropdown\"]:not(.disabled):not(:disabled)';\nconst SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;\nconst SELECTOR_MENU = '.dropdown-menu';\nconst SELECTOR_NAVBAR = '.navbar';\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav';\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\nconst PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';\nconst PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';\nconst PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';\nconst PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';\nconst PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';\nconst PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';\nconst PLACEMENT_TOPCENTER = 'top';\nconst PLACEMENT_BOTTOMCENTER = 'bottom';\nconst Default$9 = {\n autoClose: true,\n boundary: 'clippingParents',\n display: 'dynamic',\n offset: [0, 2],\n popperConfig: null,\n reference: 'toggle'\n};\nconst DefaultType$9 = {\n autoClose: '(boolean|string)',\n boundary: '(string|element)',\n display: 'string',\n offset: '(array|string|function)',\n popperConfig: '(null|object|function)',\n reference: '(string|element|object)'\n};\n\n/**\n * Class definition\n */\n\nclass Dropdown extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._popper = null;\n this._parent = this._element.parentNode; // dropdown wrapper\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);\n this._inNavbar = this._detectNavbar();\n }\n\n // Getters\n static get Default() {\n return Default$9;\n }\n static get DefaultType() {\n return DefaultType$9;\n }\n static get NAME() {\n return NAME$a;\n }\n\n // Public\n toggle() {\n return this._isShown() ? this.hide() : this.show();\n }\n show() {\n if (isDisabled(this._element) || this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);\n if (showEvent.defaultPrevented) {\n return;\n }\n this._createPopper();\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n this._element.focus();\n this._element.setAttribute('aria-expanded', true);\n this._menu.classList.add(CLASS_NAME_SHOW$6);\n this._element.classList.add(CLASS_NAME_SHOW$6);\n EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);\n }\n hide() {\n if (isDisabled(this._element) || !this._isShown()) {\n return;\n }\n const relatedTarget = {\n relatedTarget: this._element\n };\n this._completeHide(relatedTarget);\n }\n dispose() {\n if (this._popper) {\n this._popper.destroy();\n }\n super.dispose();\n }\n update() {\n this._inNavbar = this._detectNavbar();\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Private\n _completeHide(relatedTarget) {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n if (this._popper) {\n this._popper.destroy();\n }\n this._menu.classList.remove(CLASS_NAME_SHOW$6);\n this._element.classList.remove(CLASS_NAME_SHOW$6);\n this._element.setAttribute('aria-expanded', 'false');\n Manipulator.removeDataAttribute(this._menu, 'popper');\n EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);\n }\n _getConfig(config) {\n config = super._getConfig(config);\n if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {\n // Popper virtual elements require a getBoundingClientRect method\n throw new TypeError(`${NAME$a.toUpperCase()}: Option \"reference\" provided type \"object\" without a required \"getBoundingClientRect\" method.`);\n }\n return config;\n }\n _createPopper() {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n let referenceElement = this._element;\n if (this._config.reference === 'parent') {\n referenceElement = this._parent;\n } else if (isElement(this._config.reference)) {\n referenceElement = getElement(this._config.reference);\n } else if (typeof this._config.reference === 'object') {\n referenceElement = this._config.reference;\n }\n const popperConfig = this._getPopperConfig();\n this._popper = Popper.createPopper(referenceElement, this._menu, popperConfig);\n }\n _isShown() {\n return this._menu.classList.contains(CLASS_NAME_SHOW$6);\n }\n _getPlacement() {\n const parentDropdown = this._parent;\n if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {\n return PLACEMENT_RIGHT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {\n return PLACEMENT_LEFT;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {\n return PLACEMENT_TOPCENTER;\n }\n if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {\n return PLACEMENT_BOTTOMCENTER;\n }\n\n // We need to trim the value because custom properties can also include spaces\n const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n }\n return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;\n }\n _detectNavbar() {\n return this._element.closest(SELECTOR_NAVBAR) !== null;\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _getPopperConfig() {\n const defaultBsPopperConfig = {\n placement: this._getPlacement(),\n modifiers: [{\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }]\n };\n\n // Disable Popper if we have a static display or Dropdown is in Navbar\n if (this._inNavbar || this._config.display === 'static') {\n Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove\n defaultBsPopperConfig.modifiers = [{\n name: 'applyStyles',\n enabled: false\n }];\n }\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _selectMenuItem({\n key,\n target\n }) {\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));\n if (!items.length) {\n return;\n }\n\n // if target isn't included in items (e.g. when expanding the dropdown)\n // allow cycling to get the last item in case key equals ARROW_UP_KEY\n getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Dropdown.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n static clearMenus(event) {\n if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {\n return;\n }\n const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);\n for (const toggle of openToggles) {\n const context = Dropdown.getInstance(toggle);\n if (!context || context._config.autoClose === false) {\n continue;\n }\n const composedPath = event.composedPath();\n const isMenuTarget = composedPath.includes(context._menu);\n if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {\n continue;\n }\n\n // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu\n if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {\n continue;\n }\n const relatedTarget = {\n relatedTarget: context._element\n };\n if (event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n context._completeHide(relatedTarget);\n }\n }\n static dataApiKeydownHandler(event) {\n // If not an UP | DOWN | ESCAPE key => not a dropdown command\n // If input/textarea && if key is other than ESCAPE => not a dropdown command\n\n const isInput = /input|textarea/i.test(event.target.tagName);\n const isEscapeEvent = event.key === ESCAPE_KEY$2;\n const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);\n if (!isUpOrDownEvent && !isEscapeEvent) {\n return;\n }\n if (isInput && !isEscapeEvent) {\n return;\n }\n event.preventDefault();\n\n // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/\n const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);\n const instance = Dropdown.getOrCreateInstance(getToggleButton);\n if (isUpOrDownEvent) {\n event.stopPropagation();\n instance.show();\n instance._selectMenuItem(event);\n return;\n }\n if (instance._isShown()) {\n // else is escape and we check if it is shown\n event.stopPropagation();\n instance.hide();\n getToggleButton.focus();\n }\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);\nEventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {\n event.preventDefault();\n Dropdown.getOrCreateInstance(this).toggle();\n});\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Dropdown);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$9 = 'backdrop';\nconst CLASS_NAME_FADE$4 = 'fade';\nconst CLASS_NAME_SHOW$5 = 'show';\nconst EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;\nconst Default$8 = {\n className: 'modal-backdrop',\n clickCallback: null,\n isAnimated: false,\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n rootElement: 'body' // give the choice to place backdrop under different elements\n};\nconst DefaultType$8 = {\n className: 'string',\n clickCallback: '(function|null)',\n isAnimated: 'boolean',\n isVisible: 'boolean',\n rootElement: '(element|string)'\n};\n\n/**\n * Class definition\n */\n\nclass Backdrop extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n // Getters\n static get Default() {\n return Default$8;\n }\n static get DefaultType() {\n return DefaultType$8;\n }\n static get NAME() {\n return NAME$9;\n }\n\n // Public\n show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._append();\n const element = this._getElement();\n if (this._config.isAnimated) {\n reflow(element);\n }\n element.classList.add(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n execute(callback);\n });\n }\n hide(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n this._getElement().classList.remove(CLASS_NAME_SHOW$5);\n this._emulateAnimation(() => {\n this.dispose();\n execute(callback);\n });\n }\n dispose() {\n if (!this._isAppended) {\n return;\n }\n EventHandler.off(this._element, EVENT_MOUSEDOWN);\n this._element.remove();\n this._isAppended = false;\n }\n\n // Private\n _getElement() {\n if (!this._element) {\n const backdrop = document.createElement('div');\n backdrop.className = this._config.className;\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$4);\n }\n this._element = backdrop;\n }\n return this._element;\n }\n _configAfterMerge(config) {\n // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n config.rootElement = getElement(config.rootElement);\n return config;\n }\n _append() {\n if (this._isAppended) {\n return;\n }\n const element = this._getElement();\n this._config.rootElement.append(element);\n EventHandler.on(element, EVENT_MOUSEDOWN, () => {\n execute(this._config.clickCallback);\n });\n this._isAppended = true;\n }\n _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/focustrap.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$8 = 'focustrap';\nconst DATA_KEY$5 = 'bs.focustrap';\nconst EVENT_KEY$5 = `.${DATA_KEY$5}`;\nconst EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;\nconst EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;\nconst TAB_KEY = 'Tab';\nconst TAB_NAV_FORWARD = 'forward';\nconst TAB_NAV_BACKWARD = 'backward';\nconst Default$7 = {\n autofocus: true,\n trapElement: null // The element to trap focus inside of\n};\nconst DefaultType$7 = {\n autofocus: 'boolean',\n trapElement: 'element'\n};\n\n/**\n * Class definition\n */\n\nclass FocusTrap extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n this._isActive = false;\n this._lastTabNavDirection = null;\n }\n\n // Getters\n static get Default() {\n return Default$7;\n }\n static get DefaultType() {\n return DefaultType$7;\n }\n static get NAME() {\n return NAME$8;\n }\n\n // Public\n activate() {\n if (this._isActive) {\n return;\n }\n if (this._config.autofocus) {\n this._config.trapElement.focus();\n }\n EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));\n EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));\n this._isActive = true;\n }\n deactivate() {\n if (!this._isActive) {\n return;\n }\n this._isActive = false;\n EventHandler.off(document, EVENT_KEY$5);\n }\n\n // Private\n _handleFocusin(event) {\n const {\n trapElement\n } = this._config;\n if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {\n return;\n }\n const elements = SelectorEngine.focusableChildren(trapElement);\n if (elements.length === 0) {\n trapElement.focus();\n } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {\n elements[elements.length - 1].focus();\n } else {\n elements[0].focus();\n }\n }\n _handleKeydown(event) {\n if (event.key !== TAB_KEY) {\n return;\n }\n this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\nconst SELECTOR_STICKY_CONTENT = '.sticky-top';\nconst PROPERTY_PADDING = 'padding-right';\nconst PROPERTY_MARGIN = 'margin-right';\n\n/**\n * Class definition\n */\n\nclass ScrollBarHelper {\n constructor() {\n this._element = document.body;\n }\n\n // Public\n getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n hide() {\n const width = this.getWidth();\n this._disableOverFlow();\n // give padding to element to balance the hidden scrollbar width\n this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);\n }\n reset() {\n this._resetElementAttributes(this._element, 'overflow');\n this._resetElementAttributes(this._element, PROPERTY_PADDING);\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);\n }\n isOverflowing() {\n return this.getWidth() > 0;\n }\n\n // Private\n _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n this._element.style.overflow = 'hidden';\n }\n _setElementAttributes(selector, styleProperty, callback) {\n const scrollbarWidth = this.getWidth();\n const manipulationCallBack = element => {\n if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n this._saveInitialAttribute(element, styleProperty);\n const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);\n element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _saveInitialAttribute(element, styleProperty) {\n const actualValue = element.style.getPropertyValue(styleProperty);\n if (actualValue) {\n Manipulator.setDataAttribute(element, styleProperty, actualValue);\n }\n }\n _resetElementAttributes(selector, styleProperty) {\n const manipulationCallBack = element => {\n const value = Manipulator.getDataAttribute(element, styleProperty);\n // We only want to remove the property if the value is `null`; the value can also be zero\n if (value === null) {\n element.style.removeProperty(styleProperty);\n return;\n }\n Manipulator.removeDataAttribute(element, styleProperty);\n element.style.setProperty(styleProperty, value);\n };\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n return;\n }\n for (const sel of SelectorEngine.find(selector, this._element)) {\n callBack(sel);\n }\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$7 = 'modal';\nconst DATA_KEY$4 = 'bs.modal';\nconst EVENT_KEY$4 = `.${DATA_KEY$4}`;\nconst DATA_API_KEY$2 = '.data-api';\nconst ESCAPE_KEY$1 = 'Escape';\nconst EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;\nconst EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;\nconst EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;\nconst EVENT_SHOW$4 = `show${EVENT_KEY$4}`;\nconst EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;\nconst EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;\nconst EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;\nconst EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;\nconst CLASS_NAME_OPEN = 'modal-open';\nconst CLASS_NAME_FADE$3 = 'fade';\nconst CLASS_NAME_SHOW$4 = 'show';\nconst CLASS_NAME_STATIC = 'modal-static';\nconst OPEN_SELECTOR$1 = '.modal.show';\nconst SELECTOR_DIALOG = '.modal-dialog';\nconst SELECTOR_MODAL_BODY = '.modal-body';\nconst SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle=\"modal\"]';\nconst Default$6 = {\n backdrop: true,\n focus: true,\n keyboard: true\n};\nconst DefaultType$6 = {\n backdrop: '(boolean|string)',\n focus: 'boolean',\n keyboard: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._isShown = false;\n this._isTransitioning = false;\n this._scrollBar = new ScrollBarHelper();\n this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$6;\n }\n static get DefaultType() {\n return DefaultType$6;\n }\n static get NAME() {\n return NAME$7;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._isTransitioning = true;\n this._scrollBar.hide();\n document.body.classList.add(CLASS_NAME_OPEN);\n this._adjustDialog();\n this._backdrop.show(() => this._showElement(relatedTarget));\n }\n hide() {\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._isShown = false;\n this._isTransitioning = true;\n this._focustrap.deactivate();\n this._element.classList.remove(CLASS_NAME_SHOW$4);\n this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());\n }\n dispose() {\n EventHandler.off(window, EVENT_KEY$4);\n EventHandler.off(this._dialog, EVENT_KEY$4);\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n handleUpdate() {\n this._adjustDialog();\n }\n\n // Private\n _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value,\n isAnimated: this._isAnimated()\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _showElement(relatedTarget) {\n // try to append dynamic modal\n if (!document.body.contains(this._element)) {\n document.body.append(this._element);\n }\n this._element.style.display = 'block';\n this._element.removeAttribute('aria-hidden');\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.scrollTop = 0;\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n reflow(this._element);\n this._element.classList.add(CLASS_NAME_SHOW$4);\n const transitionComplete = () => {\n if (this._config.focus) {\n this._focustrap.activate();\n }\n this._isTransitioning = false;\n EventHandler.trigger(this._element, EVENT_SHOWN$4, {\n relatedTarget\n });\n };\n this._queueCallback(transitionComplete, this._dialog, this._isAnimated());\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {\n if (event.key !== ESCAPE_KEY$1) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n this._triggerBackdropTransition();\n });\n EventHandler.on(window, EVENT_RESIZE$1, () => {\n if (this._isShown && !this._isTransitioning) {\n this._adjustDialog();\n }\n });\n EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {\n // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks\n EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {\n if (this._element !== event.target || this._element !== event2.target) {\n return;\n }\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition();\n return;\n }\n if (this._config.backdrop) {\n this.hide();\n }\n });\n });\n }\n _hideModal() {\n this._element.style.display = 'none';\n this._element.setAttribute('aria-hidden', true);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n this._isTransitioning = false;\n this._backdrop.hide(() => {\n document.body.classList.remove(CLASS_NAME_OPEN);\n this._resetAdjustments();\n this._scrollBar.reset();\n EventHandler.trigger(this._element, EVENT_HIDDEN$4);\n });\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE$3);\n }\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);\n if (hideEvent.defaultPrevented) {\n return;\n }\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const initialOverflowY = this._element.style.overflowY;\n // return if the following background transition hasn't yet completed\n if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n this._element.classList.add(CLASS_NAME_STATIC);\n this._queueCallback(() => {\n this._element.classList.remove(CLASS_NAME_STATIC);\n this._queueCallback(() => {\n this._element.style.overflowY = initialOverflowY;\n }, this._dialog);\n }, this._dialog);\n this._element.focus();\n }\n\n /**\n * The following methods are used to handle overflowing modals\n */\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n const scrollbarWidth = this._scrollBar.getWidth();\n const isBodyOverflowing = scrollbarWidth > 0;\n if (isBodyOverflowing && !isModalOverflowing) {\n const property = isRTL() ? 'paddingLeft' : 'paddingRight';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n if (!isBodyOverflowing && isModalOverflowing) {\n const property = isRTL() ? 'paddingRight' : 'paddingLeft';\n this._element.style[property] = `${scrollbarWidth}px`;\n }\n }\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n }\n\n // Static\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n const data = Modal.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](relatedTarget);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n EventHandler.one(target, EVENT_SHOW$4, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$4, () => {\n if (isVisible(this)) {\n this.focus();\n }\n });\n });\n\n // avoid conflict when clicking modal toggler while another one is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);\n if (alreadyOpen) {\n Modal.getInstance(alreadyOpen).hide();\n }\n const data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n});\nenableDismissTrigger(Modal);\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Modal);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap offcanvas.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$6 = 'offcanvas';\nconst DATA_KEY$3 = 'bs.offcanvas';\nconst EVENT_KEY$3 = `.${DATA_KEY$3}`;\nconst DATA_API_KEY$1 = '.data-api';\nconst EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst ESCAPE_KEY = 'Escape';\nconst CLASS_NAME_SHOW$3 = 'show';\nconst CLASS_NAME_SHOWING$1 = 'showing';\nconst CLASS_NAME_HIDING = 'hiding';\nconst CLASS_NAME_BACKDROP = 'offcanvas-backdrop';\nconst OPEN_SELECTOR = '.offcanvas.show';\nconst EVENT_SHOW$3 = `show${EVENT_KEY$3}`;\nconst EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;\nconst EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;\nconst EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;\nconst EVENT_RESIZE = `resize${EVENT_KEY$3}`;\nconst EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;\nconst SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle=\"offcanvas\"]';\nconst Default$5 = {\n backdrop: true,\n keyboard: true,\n scroll: false\n};\nconst DefaultType$5 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n scroll: 'boolean'\n};\n\n/**\n * Class definition\n */\n\nclass Offcanvas extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isShown = false;\n this._backdrop = this._initializeBackDrop();\n this._focustrap = this._initializeFocusTrap();\n this._addEventListeners();\n }\n\n // Getters\n static get Default() {\n return Default$5;\n }\n static get DefaultType() {\n return DefaultType$5;\n }\n static get NAME() {\n return NAME$6;\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n show(relatedTarget) {\n if (this._isShown) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {\n relatedTarget\n });\n if (showEvent.defaultPrevented) {\n return;\n }\n this._isShown = true;\n this._backdrop.show();\n if (!this._config.scroll) {\n new ScrollBarHelper().hide();\n }\n this._element.setAttribute('aria-modal', true);\n this._element.setAttribute('role', 'dialog');\n this._element.classList.add(CLASS_NAME_SHOWING$1);\n const completeCallBack = () => {\n if (!this._config.scroll || this._config.backdrop) {\n this._focustrap.activate();\n }\n this._element.classList.add(CLASS_NAME_SHOW$3);\n this._element.classList.remove(CLASS_NAME_SHOWING$1);\n EventHandler.trigger(this._element, EVENT_SHOWN$3, {\n relatedTarget\n });\n };\n this._queueCallback(completeCallBack, this._element, true);\n }\n hide() {\n if (!this._isShown) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);\n if (hideEvent.defaultPrevented) {\n return;\n }\n this._focustrap.deactivate();\n this._element.blur();\n this._isShown = false;\n this._element.classList.add(CLASS_NAME_HIDING);\n this._backdrop.hide();\n const completeCallback = () => {\n this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);\n this._element.removeAttribute('aria-modal');\n this._element.removeAttribute('role');\n if (!this._config.scroll) {\n new ScrollBarHelper().reset();\n }\n EventHandler.trigger(this._element, EVENT_HIDDEN$3);\n };\n this._queueCallback(completeCallback, this._element, true);\n }\n dispose() {\n this._backdrop.dispose();\n this._focustrap.deactivate();\n super.dispose();\n }\n\n // Private\n _initializeBackDrop() {\n const clickCallback = () => {\n if (this._config.backdrop === 'static') {\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n return;\n }\n this.hide();\n };\n\n // 'static' option will be translated to true, and booleans will keep their value\n const isVisible = Boolean(this._config.backdrop);\n return new Backdrop({\n className: CLASS_NAME_BACKDROP,\n isVisible,\n isAnimated: true,\n rootElement: this._element.parentNode,\n clickCallback: isVisible ? clickCallback : null\n });\n }\n _initializeFocusTrap() {\n return new FocusTrap({\n trapElement: this._element\n });\n }\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (event.key !== ESCAPE_KEY) {\n return;\n }\n if (this._config.keyboard) {\n this.hide();\n return;\n }\n EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);\n });\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Offcanvas.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](this);\n });\n }\n}\n\n/**\n * Data API implementation\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n if (isDisabled(this)) {\n return;\n }\n EventHandler.one(target, EVENT_HIDDEN$3, () => {\n // focus on trigger when it is closed\n if (isVisible(this)) {\n this.focus();\n }\n });\n\n // avoid conflict when clicking a toggler of an offcanvas, while another is open\n const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);\n if (alreadyOpen && alreadyOpen !== target) {\n Offcanvas.getInstance(alreadyOpen).hide();\n }\n const data = Offcanvas.getOrCreateInstance(target);\n data.toggle(this);\n});\nEventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {\n for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {\n Offcanvas.getOrCreateInstance(selector).show();\n }\n});\nEventHandler.on(window, EVENT_RESIZE, () => {\n for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {\n if (getComputedStyle(element).position !== 'fixed') {\n Offcanvas.getOrCreateInstance(element).hide();\n }\n }\n});\nenableDismissTrigger(Offcanvas);\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Offcanvas);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n// js-docs-start allow-list\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\nconst DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n};\n// js-docs-end allow-list\n\nconst uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\n\n/**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\n// eslint-disable-next-line unicorn/better-regex\nconst SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;\nconst allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase();\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));\n }\n return true;\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));\n};\nfunction sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml);\n }\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase();\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n continue;\n }\n const attributeList = [].concat(...element.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n }\n }\n return createdDocument.body.innerHTML;\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$5 = 'TemplateFactory';\nconst Default$4 = {\n allowList: DefaultAllowlist,\n content: {},\n // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '
'\n};\nconst DefaultType$4 = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n};\nconst DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n};\n\n/**\n * Class definition\n */\n\nclass TemplateFactory extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n }\n\n // Getters\n static get Default() {\n return Default$4;\n }\n static get DefaultType() {\n return DefaultType$4;\n }\n static get NAME() {\n return NAME$5;\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);\n }\n hasContent() {\n return this.getContent().length > 0;\n }\n changeContent(content) {\n this._checkContent(content);\n this._config.content = {\n ...this._config.content,\n ...content\n };\n return this;\n }\n toHtml() {\n const templateWrapper = document.createElement('div');\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector);\n }\n const template = templateWrapper.children[0];\n const extraClass = this._resolvePossibleFunction(this._config.extraClass);\n if (extraClass) {\n template.classList.add(...extraClass.split(' '));\n }\n return template;\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config);\n this._checkContent(config.content);\n }\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({\n selector,\n entry: content\n }, DefaultContentType);\n }\n }\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n if (!templateElement) {\n return;\n }\n content = this._resolvePossibleFunction(content);\n if (!content) {\n templateElement.remove();\n return;\n }\n if (isElement(content)) {\n this._putElementInTemplate(getElement(content), templateElement);\n return;\n }\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content);\n return;\n }\n templateElement.textContent = content;\n }\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this]);\n }\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = '';\n templateElement.append(element);\n return;\n }\n templateElement.textContent = element.textContent;\n }\n}\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$4 = 'tooltip';\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\nconst CLASS_NAME_FADE$2 = 'fade';\nconst CLASS_NAME_MODAL = 'modal';\nconst CLASS_NAME_SHOW$2 = 'show';\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\nconst EVENT_MODAL_HIDE = 'hide.bs.modal';\nconst TRIGGER_HOVER = 'hover';\nconst TRIGGER_FOCUS = 'focus';\nconst TRIGGER_CLICK = 'click';\nconst TRIGGER_MANUAL = 'manual';\nconst EVENT_HIDE$2 = 'hide';\nconst EVENT_HIDDEN$2 = 'hidden';\nconst EVENT_SHOW$2 = 'show';\nconst EVENT_SHOWN$2 = 'shown';\nconst EVENT_INSERTED = 'inserted';\nconst EVENT_CLICK$1 = 'click';\nconst EVENT_FOCUSIN$1 = 'focusin';\nconst EVENT_FOCUSOUT$1 = 'focusout';\nconst EVENT_MOUSEENTER = 'mouseenter';\nconst EVENT_MOUSELEAVE = 'mouseleave';\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: isRTL() ? 'right' : 'left'\n};\nconst Default$3 = {\n allowList: DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '
' + '
' + '
' + '
',\n title: '',\n trigger: 'hover focus'\n};\nconst DefaultType$3 = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n};\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n super(element, config);\n\n // Private\n this._isEnabled = true;\n this._timeout = 0;\n this._isHovered = null;\n this._activeTrigger = {};\n this._popper = null;\n this._templateFactory = null;\n this._newContent = null;\n\n // Protected\n this.tip = null;\n this._setListeners();\n if (!this._config.selector) {\n this._fixTitle();\n }\n }\n\n // Getters\n static get Default() {\n return Default$3;\n }\n static get DefaultType() {\n return DefaultType$3;\n }\n static get NAME() {\n return NAME$4;\n }\n\n // Public\n enable() {\n this._isEnabled = true;\n }\n disable() {\n this._isEnabled = false;\n }\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n toggle() {\n if (!this._isEnabled) {\n return;\n }\n this._activeTrigger.click = !this._activeTrigger.click;\n if (this._isShown()) {\n this._leave();\n return;\n }\n this._enter();\n }\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));\n }\n this._disposePopper();\n super.dispose();\n }\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n if (!(this._isWithContent() && this._isEnabled)) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));\n const shadowRoot = findShadowRoot(this._element);\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n }\n\n // TODO: v6 remove this or make it optional\n this._disposePopper();\n const tip = this._getTipElement();\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\n const {\n container\n } = this._config;\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));\n }\n this._popper = this._createPopper(tip);\n tip.classList.add(CLASS_NAME_SHOW$2);\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', noop);\n }\n }\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));\n if (this._isHovered === false) {\n this._leave();\n }\n this._isHovered = false;\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n hide() {\n if (!this._isShown()) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));\n if (hideEvent.defaultPrevented) {\n return;\n }\n const tip = this._getTipElement();\n tip.classList.remove(CLASS_NAME_SHOW$2);\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', noop);\n }\n }\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n this._isHovered = null; // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return;\n }\n if (!this._isHovered) {\n this._disposePopper();\n }\n this._element.removeAttribute('aria-describedby');\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n update() {\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle());\n }\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\n }\n return this.tip;\n }\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml();\n\n // TODO: remove this check in v6\n if (!tip) {\n return null;\n }\n tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);\n // TODO: v6 the following can be achieved with CSS only\n tip.classList.add(`bs-${this.constructor.NAME}-auto`);\n const tipId = getUID(this.constructor.NAME).toString();\n tip.setAttribute('id', tipId);\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE$2);\n }\n return tip;\n }\n setContent(content) {\n this._newContent = content;\n if (this._isShown()) {\n this._disposePopper();\n this.show();\n }\n }\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content);\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n });\n }\n return this._templateFactory;\n }\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n };\n }\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n _isAnimated() {\n return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);\n }\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);\n }\n _createPopper(tip) {\n const placement = execute(this._config.placement, [this, tip, this._element]);\n const attachment = AttachmentMap[placement.toUpperCase()];\n return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _resolvePossibleFunction(arg) {\n return execute(arg, [this._element]);\n }\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n }, {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement);\n }\n }]\n };\n return {\n ...defaultBsPopperConfig,\n ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context.toggle();\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);\n const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n context._enter();\n });\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n context._leave();\n });\n }\n }\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n }\n _fixTitle() {\n const title = this._element.getAttribute('title');\n if (!title) {\n return;\n }\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title);\n }\n this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title');\n }\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true;\n return;\n }\n this._isHovered = true;\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show();\n }\n }, this._config.delay.show);\n }\n _leave() {\n if (this._isWithActiveTrigger()) {\n return;\n }\n this._isHovered = false;\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide();\n }\n }, this._config.delay.hide);\n }\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(handler, timeout);\n }\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true);\n }\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute];\n }\n }\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n };\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : getElement(config.container);\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n return config;\n }\n _getDelegateConfig() {\n const config = {};\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value;\n }\n }\n config.selector = false;\n config.trigger = 'manual';\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config;\n }\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n this._popper = null;\n }\n if (this.tip) {\n this.tip.remove();\n this.tip = null;\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$3 = 'popover';\nconst SELECTOR_TITLE = '.popover-header';\nconst SELECTOR_CONTENT = '.popover-body';\nconst Default$2 = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '
' + '
' + '

' + '
' + '
',\n trigger: 'click'\n};\nconst DefaultType$2 = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n};\n\n/**\n * Class definition\n */\n\nclass Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default$2;\n }\n static get DefaultType() {\n return DefaultType$2;\n }\n static get NAME() {\n return NAME$3;\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent();\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n };\n }\n _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Popover);\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n/**\n * Constants\n */\n\nconst NAME$2 = 'scrollspy';\nconst DATA_KEY$2 = 'bs.scrollspy';\nconst EVENT_KEY$2 = `.${DATA_KEY$2}`;\nconst DATA_API_KEY = '.data-api';\nconst EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;\nconst EVENT_CLICK = `click${EVENT_KEY$2}`;\nconst EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\nconst CLASS_NAME_ACTIVE$1 = 'active';\nconst SELECTOR_DATA_SPY = '[data-bs-spy=\"scroll\"]';\nconst SELECTOR_TARGET_LINKS = '[href]';\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\nconst SELECTOR_NAV_LINKS = '.nav-link';\nconst SELECTOR_NAV_ITEMS = '.nav-item';\nconst SELECTOR_LIST_ITEMS = '.list-group-item';\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;\nconst SELECTOR_DROPDOWN = '.dropdown';\nconst SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\nconst Default$1 = {\n offset: null,\n // TODO: v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: '0px 0px -25%',\n smoothScroll: false,\n target: null,\n threshold: [0.1, 0.5, 1]\n};\nconst DefaultType$1 = {\n offset: '(number|null)',\n // TODO v6 @deprecated, keep it for backwards compatibility reasons\n rootMargin: 'string',\n smoothScroll: 'boolean',\n target: 'element',\n threshold: 'array'\n};\n\n/**\n * Class definition\n */\n\nclass ScrollSpy extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n\n // this._element is the observablesContainer and config.target the menu links wrapper\n this._targetLinks = new Map();\n this._observableSections = new Map();\n this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element;\n this._activeTarget = null;\n this._observer = null;\n this._previousScrollData = {\n visibleEntryTop: 0,\n parentScrollTop: 0\n };\n this.refresh(); // initialize\n }\n\n // Getters\n static get Default() {\n return Default$1;\n }\n static get DefaultType() {\n return DefaultType$1;\n }\n static get NAME() {\n return NAME$2;\n }\n\n // Public\n refresh() {\n this._initializeTargetsAndObservables();\n this._maybeEnableSmoothScroll();\n if (this._observer) {\n this._observer.disconnect();\n } else {\n this._observer = this._getNewObserver();\n }\n for (const section of this._observableSections.values()) {\n this._observer.observe(section);\n }\n }\n dispose() {\n this._observer.disconnect();\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case\n config.target = getElement(config.target) || document.body;\n\n // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only\n config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;\n if (typeof config.threshold === 'string') {\n config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));\n }\n return config;\n }\n _maybeEnableSmoothScroll() {\n if (!this._config.smoothScroll) {\n return;\n }\n\n // unregister any previous listeners\n EventHandler.off(this._config.target, EVENT_CLICK);\n EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\n const observableSection = this._observableSections.get(event.target.hash);\n if (observableSection) {\n event.preventDefault();\n const root = this._rootElement || window;\n const height = observableSection.offsetTop - this._element.offsetTop;\n if (root.scrollTo) {\n root.scrollTo({\n top: height,\n behavior: 'smooth'\n });\n return;\n }\n\n // Chrome 60 doesn't support `scrollTo`\n root.scrollTop = height;\n }\n });\n }\n _getNewObserver() {\n const options = {\n root: this._rootElement,\n threshold: this._config.threshold,\n rootMargin: this._config.rootMargin\n };\n return new IntersectionObserver(entries => this._observerCallback(entries), options);\n }\n\n // The logic of selection\n _observerCallback(entries) {\n const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);\n const activate = entry => {\n this._previousScrollData.visibleEntryTop = entry.target.offsetTop;\n this._process(targetElement(entry));\n };\n const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;\n const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;\n this._previousScrollData.parentScrollTop = parentScrollTop;\n for (const entry of entries) {\n if (!entry.isIntersecting) {\n this._activeTarget = null;\n this._clearActiveClass(targetElement(entry));\n continue;\n }\n const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;\n // if we are scrolling down, pick the bigger offsetTop\n if (userScrollsDown && entryIsLowerThanPrevious) {\n activate(entry);\n // if parent isn't scrolled, let's keep the first visible item, breaking the iteration\n if (!parentScrollTop) {\n return;\n }\n continue;\n }\n\n // if we are scrolling up, pick the smallest offsetTop\n if (!userScrollsDown && !entryIsLowerThanPrevious) {\n activate(entry);\n }\n }\n }\n _initializeTargetsAndObservables() {\n this._targetLinks = new Map();\n this._observableSections = new Map();\n const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);\n for (const anchor of targetLinks) {\n // ensure that the anchor has an id and is not disabled\n if (!anchor.hash || isDisabled(anchor)) {\n continue;\n }\n const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);\n\n // ensure that the observableSection exists & is visible\n if (isVisible(observableSection)) {\n this._targetLinks.set(decodeURI(anchor.hash), anchor);\n this._observableSections.set(anchor.hash, observableSection);\n }\n }\n }\n _process(target) {\n if (this._activeTarget === target) {\n return;\n }\n this._clearActiveClass(this._config.target);\n this._activeTarget = target;\n target.classList.add(CLASS_NAME_ACTIVE$1);\n this._activateParents(target);\n EventHandler.trigger(this._element, EVENT_ACTIVATE, {\n relatedTarget: target\n });\n }\n _activateParents(target) {\n // Activate dropdown parents\n if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);\n return;\n }\n for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {\n // Set triggered links parents as active\n // With both