From 4a409ee686e576aa86c4927e38ca62808a5f1dbf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 13 Apr 2024 00:12:48 +0000 Subject: [PATCH] deploy: 90c6c70cdbdc3e4fd032aac95f9acfcb0db7d30e --- .nojekyll | 0 api/cassini_iss.html | 998 ++++ api/cassini_uvis.html | 1195 +++++ api/config.html | 1019 ++++ api/ctx.html | 3244 +++++++++++++ api/diviner.html | 844 ++++ api/exceptions.html | 796 ++++ api/geotools.html | 1088 +++++ api/hirise.html | 1869 ++++++++ api/pds.apps.html | 1851 ++++++++ api/pds.crism_index.html | 1103 +++++ api/pds.ctx_index.html | 862 ++++ api/pds.indexes.html | 958 ++++ api/pds.lroc_index.html | 787 ++++ api/pds.opusapi.html | 785 +++ api/pds.utils.html | 920 ++++ api/spice.kernels.html | 2160 +++++++++ api/utils.html | 1327 ++++++ index.html | 1291 +++++ robots.txt | 1 + search.json | 653 +++ site_libs/bootstrap/bootstrap-icons.css | 2078 ++++++++ site_libs/bootstrap/bootstrap-icons.woff | Bin 0 -> 176200 bytes site_libs/bootstrap/bootstrap.min.css | 12 + site_libs/bootstrap/bootstrap.min.js | 7 + site_libs/clipboard/clipboard.min.js | 7 + site_libs/quarto-html/anchor.min.js | 9 + site_libs/quarto-html/popper.min.js | 6 + .../quarto-syntax-highlighting.css | 203 + site_libs/quarto-html/quarto.js | 899 ++++ site_libs/quarto-html/tippy.css | 1 + site_libs/quarto-html/tippy.umd.min.js | 2 + site_libs/quarto-nav/headroom.min.js | 7 + site_libs/quarto-nav/quarto-nav.js | 289 ++ site_libs/quarto-search/autocomplete.umd.js | 3 + site_libs/quarto-search/fuse.min.js | 9 + site_libs/quarto-search/quarto-search.js | 1286 +++++ sitemap.xml | 95 + styles.css | 18 + .../figure-html/cell-19-output-1.png | Bin 0 -> 428745 bytes tutorials/apps_demo.html | 2908 ++++++++++++ tutorials/assets/NAIF_archives.png | Bin 0 -> 157046 bytes tutorials/pdw2023_demo.html | 4188 +++++++++++++++++ tutorials/pdw_2023.html | 1643 +++++++ tutorials/pdw_2023.html.pptx | Bin 0 -> 186268 bytes tutorials/spice_howtos.html | 909 ++++ tutorials/tutorial.html | 1919 ++++++++ 47 files changed, 40249 insertions(+) create mode 100644 .nojekyll create mode 100644 api/cassini_iss.html create mode 100644 api/cassini_uvis.html create mode 100644 api/config.html create mode 100644 api/ctx.html create mode 100644 api/diviner.html create mode 100644 api/exceptions.html create mode 100644 api/geotools.html create mode 100644 api/hirise.html create mode 100644 api/pds.apps.html create mode 100644 api/pds.crism_index.html create mode 100644 api/pds.ctx_index.html create mode 100644 api/pds.indexes.html create mode 100644 api/pds.lroc_index.html create mode 100644 api/pds.opusapi.html create mode 100644 api/pds.utils.html create mode 100644 api/spice.kernels.html create mode 100644 api/utils.html create mode 100644 index.html create mode 100644 robots.txt create mode 100644 search.json create mode 100644 site_libs/bootstrap/bootstrap-icons.css create mode 100644 site_libs/bootstrap/bootstrap-icons.woff create mode 100644 site_libs/bootstrap/bootstrap.min.css create mode 100644 site_libs/bootstrap/bootstrap.min.js create mode 100644 site_libs/clipboard/clipboard.min.js create mode 100644 site_libs/quarto-html/anchor.min.js create mode 100644 site_libs/quarto-html/popper.min.js create mode 100644 site_libs/quarto-html/quarto-syntax-highlighting.css create mode 100644 site_libs/quarto-html/quarto.js create mode 100644 site_libs/quarto-html/tippy.css create mode 100644 site_libs/quarto-html/tippy.umd.min.js create mode 100644 site_libs/quarto-nav/headroom.min.js create mode 100644 site_libs/quarto-nav/quarto-nav.js create mode 100644 site_libs/quarto-search/autocomplete.umd.js create mode 100644 site_libs/quarto-search/fuse.min.js create mode 100644 site_libs/quarto-search/quarto-search.js create mode 100644 sitemap.xml create mode 100644 styles.css create mode 100644 tutorials/PDW2023_Demo_files/figure-html/cell-19-output-1.png create mode 100644 tutorials/apps_demo.html create mode 100644 tutorials/assets/NAIF_archives.png create mode 100644 tutorials/pdw2023_demo.html create mode 100644 tutorials/pdw_2023.html create mode 100644 tutorials/pdw_2023.html.pptx create mode 100644 tutorials/spice_howtos.html create mode 100644 tutorials/tutorial.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/api/cassini_iss.html b/api/cassini_iss.html new file mode 100644 index 0000000..6261b42 --- /dev/null +++ b/api/cassini_iss.html @@ -0,0 +1,998 @@ + + + + + + + + + + +planetarypy - Cassini ISS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Cassini ISS

+
+ +
+
+ Data getters for Cassini ISS image data +
+
+ + +
+ + + + +
+ + + +
+ + + +
+
storage_root
+
+
Path('/Users/maye/planetarypy_data/missions/cassini/iss')
+
+
+
+

source

+
+

DataRetriever

+
+
 DataRetriever (pid)
+
+

Initialize self. See help(type(self)) for accurate signature.

+ + + + + + + + + + + + + +
Details
pidPDS product_id, e.g. N1454725799
+
+
pid = "N1454725799"
+
+
+
dm = DataRetriever(pid)
+
+
+
dm.raw_fname
+
+
'N1454725799_1.IMG'
+
+
+
+
dm.raw_data_url
+
+
URL('https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1.IMG')
+
+
+
+
dm.raw_label_url
+
+
URL('https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1.LBL')
+
+
+
+
dm.raw_prefix_fmt_url
+
+
URL('https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/label/prefix2.fmt')
+
+
+
+
dm.raw_tlmtab_url
+
+
URL('https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/label/tlmtab.fmt')
+
+
+
+
dm.calib_data_url
+
+
URL('https://opus.pds-rings.seti.org/holdings/calibrated/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_CALIB.IMG')
+
+
+
+

source

+
+
+

ISS

+
+
 ISS (pid)
+
+

Initialize self. See help(type(self)) for accurate signature.

+
+
id = "N1874681996"
+id = "N1454725799"
+# id = "N1878581142"
+
+
+
list(storage_root.rglob(f"{id}*"))
+
+
[Path('/Users/maye/planetarypy_data/missions/cassini/iss/N1454725799'),
+ Path('/Users/maye/planetarypy_data/missions/cassini/iss/N1454725799/N1454725799_1_CALIB.IMG')]
+
+
+
+
iss = ISS(pid)
+
+
Found 1 obsids.
+
+
+
+
iss.local_folder
+
+
Path('/Users/maye/planetarypy_data/missions/cassini/iss/N1454725799')
+
+
+
+
iss.raw_data_url
+
+
URL('https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1.IMG')
+
+
+
+
iss.raw_tlmtab_url
+
+
URL('https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/label/tlmtab.fmt')
+
+
+
+
iss.download_calib()
+
+
File exists. Use `overwrite` to force re-download.
+
+
+
+
config.storage_root
+
+
Path('/Users/maye/planetarypy_data')
+
+
+
+
iss.dict.keys()
+
+
dict_keys(['coiss_raw', 'coiss_calib', 'coiss_thumb', 'coiss_medium', 'coiss_full', 'coiss_documentation', 'rms_index', 'inventory', 'planet_geometry', 'moon_geometry', 'ring_geometry', 'browse_thumb', 'browse_small', 'browse_medium', 'browse_full'])
+
+
+
+
iss.local_calib_path
+
+
Path('/Users/maye/planetarypy_data/missions/cassini/iss/N1454725799/N1454725799_1_CALIB.IMG')
+
+
+
+
iss.calib_data_url
+
+
URL('https://opus.pds-rings.seti.org/holdings/calibrated/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_CALIB.IMG')
+
+
+
+
dm.calib_data_url
+
+
URL('https://opus.pds-rings.seti.org/holdings/calibrated/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_CALIB.IMG')
+
+
+
+
iss.raw_data_url
+
+
URL('https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1.IMG')
+
+
+
+
iss.volume
+
+
'COISS_2001'
+
+
+
+
iss.local_folder
+
+
Path('/Users/maye/planetarypy_data/missions/cassini/iss/N1454725799')
+
+
+
+
def get_raw_data_path(product_id):
+    iss = ISS(product_id)
+    return iss.local_data_path
+
+
+
id
+
+
'N1454725799'
+
+
+
+
list(storage_root.glob(f"**/{id}"))
+
+
[Path('/Users/maye/planetarypy_data/missions/cassini/iss/N1454725799')]
+
+
+
+
storage_root
+
+
Path('/Users/maye/planetarypy_data/missions/cassini/iss')
+
+
+
+
!ls {storage_root}
+
+
N1454725799/ N1874681996/ indexes/
+
+
+
+
get_raw_data_path(id)
+
+
Found 1 obsids.
+
+
+
Path('/Users/maye/planetarypy_data/missions/cassini/iss/N1454725799/N1454725799_1.IMG')
+
+
+
+
iss.dict
+
+
{'coiss_raw': ['https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1.IMG',
+  'https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1.LBL',
+  'https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/label/prefix2.fmt',
+  'https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/label/tlmtab.fmt'],
+ 'coiss_calib': ['https://opus.pds-rings.seti.org/holdings/calibrated/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_CALIB.IMG',
+  'https://opus.pds-rings.seti.org/holdings/calibrated/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_CALIB.LBL'],
+ 'coiss_thumb': ['https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/extras/thumbnail/1454725799_1455008789/N1454725799_1.IMG.jpeg_small'],
+ 'coiss_medium': ['https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/extras/browse/1454725799_1455008789/N1454725799_1.IMG.jpeg'],
+ 'coiss_full': ['https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/extras/full/1454725799_1455008789/N1454725799_1.IMG.png'],
+ 'coiss_documentation': ['https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/VICAR-File-Format.pdf',
+  'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/ISS-Users-Guide.pdf',
+  'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/ISS-Users-Guide.docx',
+  'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/Data-Product-SIS.txt',
+  'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/Data-Product-SIS.pdf',
+  'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/Cassini-ISS-Final-Report.pdf',
+  'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/Calibration-Theoretical-Basis.pdf',
+  'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/Calibration-Plan.pdf',
+  'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/CISSCAL-Users-Guide.pdf',
+  'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/Archive-SIS.txt',
+  'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/Archive-SIS.pdf'],
+ 'rms_index': ['https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_index.tab',
+  'https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_index.lbl'],
+ 'inventory': ['https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_inventory.csv',
+  'https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_inventory.lbl'],
+ 'planet_geometry': ['https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_saturn_summary.tab',
+  'https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_saturn_summary.lbl'],
+ 'moon_geometry': ['https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_moon_summary.tab',
+  'https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_moon_summary.lbl'],
+ 'ring_geometry': ['https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_ring_summary.tab',
+  'https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_ring_summary.lbl'],
+ 'browse_thumb': ['https://opus.pds-rings.seti.org/holdings/previews/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_thumb.jpg'],
+ 'browse_small': ['https://opus.pds-rings.seti.org/holdings/previews/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_small.jpg'],
+ 'browse_medium': ['https://opus.pds-rings.seti.org/holdings/previews/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_med.jpg'],
+ 'browse_full': ['https://opus.pds-rings.seti.org/holdings/previews/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_full.png']}
+
+
+ + +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/api/cassini_uvis.html b/api/cassini_uvis.html new file mode 100644 index 0000000..9e72ee1 --- /dev/null +++ b/api/cassini_uvis.html @@ -0,0 +1,1195 @@ + + + + + + + + + + +planetarypy - UVIS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

UVIS

+
+ +
+
+ Data management for Cassini UVIS. +
+
+ + +
+ + + + +
+ + + +
+ + + +
+
get_index("cassini.uvis", "index")
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FILE_NAMEOBSERVATION_TYPESTART_TIMESTOP_TIMETARGET_NAMEDATA_SET_IDSPACECRAFT_CLOCK_START_COUNTSPACECRAFT_CLOCK_STOP_COUNTINTEGRATION_DURATIONCOMPRESSION_TYPE...SUB_SOLAR_LONGITUDESUB_SPACECRAFT_LATITUDESUB_SPACECRAFT_LONGITUDEPHASE_ANGLEEMISSION_ANGLESOLAR_INCIDENCE_ANGLECENTRAL_BODY_DISTANCEDWELL_TIMEH_LEVELD_LEVEL
0/COUVIS_0001/DATA/D1999_007/EUV1999_007_17_05.LBLUSTARE1999-01-07 17:05:01.9491999-01-07 17:08:37.949<NA>CO-J-UVIS-2-SPEC-V1.21/1294420183.000UNK4.0NONE...-999.0-999.0-999.0-999.0-999.0-999-999.0-999<NA><NA>
1/COUVIS_0001/DATA/D1999_007/EUV1999_007_17_08.LBLUSTARE1999-01-07 17:08:51.9471999-01-07 17:12:27.947<NA>CO-J-UVIS-2-SPEC-V1.21/1294420413.000UNK4.0NONE...-999.0-999.0-999.0-999.0-999.0-999-999.0-999<NA><NA>
2/COUVIS_0001/DATA/D1999_007/FUV1999_007_16_57.LBLUSTARE1999-01-07 16:57:21.9521999-01-07 17:00:57.952<NA>CO-J-UVIS-2-SPEC-V1.21/1294419723.000UNK4.0NONE...-999.0-999.0-999.0-999.0-999.0-999-999.0-999<NA><NA>
3/COUVIS_0001/DATA/D1999_007/FUV1999_007_17_01.LBLUSTARE1999-01-07 17:01:11.9501999-01-07 17:04:47.950<NA>CO-J-UVIS-2-SPEC-V1.21/1294419953.000UNK4.0NONE...-999.0-999.0-999.0-999.0-999.0-999-999.0-999<NA><NA>
4/COUVIS_0001/DATA/D1999_007/HDAC1999_007_16_31...UHDAC1999-01-07 16:31:07.9621999-01-07 16:31:11.962<NA>CO-J-UVIS-2-SSB-V1.21/1294418149.000UNK-999.0NONE...-999.0-999.0-999.0-999.0-999.0-999-999.01(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
..................................................................
203240/COUVIS_0060/DATA/D2017_258/FUV2017_258_04_31.LBL<NA>2017-09-15 04:31:53.0052017-09-15 09:04:56.755SOLAR WINDCO-S-UVIS-2-CUBE-V1.41/1884145299.160UNK8191.875SQRT_9...-999.0-999.0-999.0-999.0-999.0-999-999.0-999<NA><NA>
203241/COUVIS_0060/DATA/D2017_258/FUV2017_258_07_00.LBL<NA>2017-09-15 07:00:27.6972017-09-15 07:13:40.447SOLAR WINDCO-S-UVIS-2-SPEC-V1.41/1884154214.096UNK2.625SQRT_9...-999.0-999.0-999.0-999.0-999.0-999-999.0-999<NA><NA>
203242/COUVIS_0060/DATA/D2017_258/FUV2017_258_07_15.LBL<NA>2017-09-15 07:15:04.4422017-09-15 10:31:51.692SOLAR WINDCO-S-UVIS-2-SPEC-V1.41/1884155091.032UNK2.625SQRT_9...-999.0-999.0-999.0-999.0-999.0-999-999.0-999<NA><NA>
203243/COUVIS_0060/DATA/D2017_258/HDAC2017_258_02_14...<NA>2017-09-15 02:14:02.4332017-09-15 02:14:06.433SOLAR WINDCO-S-UVIS-2-SSB-V1.41/1884137029.000UNK-999.0NONE...-999.0-999.0-999.0-999.0-999.0-999-999.01(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
203244/COUVIS_0060/DATA/D2017_258/HDAC2017_258_02_15...<NA>2017-09-15 02:15:25.0582017-09-15 02:17:33.058SOLAR WINDCO-S-UVIS-2-SSB-V1.41/1884137111.160UNK-999.0NONE...-999.0-999.0-999.0-999.0-999.0-999-999.032(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
+ +

203245 rows × 28 columns

+
+
+
+
+
+

source

+
+

DataManager

+
+
 DataManager (pid:str, skip_download:bool=False)
+
+

Initialize self. See help(type(self)) for accurate signature.

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
pidstrProduct ID. If longer than PDS_ID, will be cut in attribute pds_id
skip_downloadboolFalseskip trying to download
+
+
pid = "EUV2002_198_03_26_54_UVIS_C33ST_SPICARAST002_PRIME"
+
+
+
dm = DataManager(pid)
+
+
+
dm.raw_label_url
+
+
URL('https://opus.pds-rings.seti.org/holdings/volumes/COUVIS_0xxx/COUVIS_0004/DATA/D2002_198/EUV2002_198_03_26.LBL')
+
+
+
+
assert dm.pid == pid
+
+

PDS data is only stored under the first 17 characters of any UVIS-internal product id.

+
+
assert dm.pds_id == pid[:17]
+
+

The originally used product ID pid will be stored under original_pid.txt in the data folder:

+
+
dm.original_pid_file
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2002_198_03_26/original_pid.txt')
+
+
+

The OPUS result file will be stored as a TOML file:

+
+
dm.results_file
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2002_198_03_26/urls.toml')
+
+
+
+
dm.download(overwrite=False)
+
+
Local files exists. Use `overwrite=True` to download fresh.
+
+
+
+
dm.raw_data_path
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2002_198_03_26/EUV2002_198_03_26.DAT')
+
+
+
+
dm.calib_corr_path
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2002_198_03_26/EUV2002_198_03_26_CAL_3.DAT')
+
+
+
+

source

+
+
+

get_label_path

+
+
 get_label_path (pid)
+
+
+

source

+
+
+

get_data_path

+
+
 get_data_path (pid, skip_download=False)
+
+
+
get_data_path(pid)
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2002_198_03_26/EUV2002_198_03_26.DAT')
+
+
+
+
get_label_path(pid)
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2002_198_03_26/EUV2002_198_03_26.LBL')
+
+
+
+

source

+
+
+

get_user_guide

+
+
 get_user_guide ()
+
+
+
get_user_guide()
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/uvis_user_guide.pdf')
+
+
+ + +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/api/config.html b/api/config.html new file mode 100644 index 0000000..33ca4b7 --- /dev/null +++ b/api/config.html @@ -0,0 +1,1019 @@ + + + + + + + + + + +planetarypy - Config + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Config

+
+ +
+
+ This module manages configuration of the planetarypy package. +
+
+ + +
+ + + + +
+ + + +
+ + + +
+

source

+
+

reset_non_urls

+
+
 reset_non_urls (source:dict, reset:str='')
+
+

Reset all non-URL values in the config file.

+

This is useful for copying the private config file with new data items back into the source tree for a clean commit.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
sourcedictsource dictionary
resetstrvalue to reset non URLs to
Returnsdict
+
+

source

+
+
+

Config

+
+
 Config (config_path:str=None)
+
+

Manage config stuff.

+

The key, value pairs found in the config file become attributes of the class instance after initialization. At minimum, there should be the storage_root attribute for storing data for this package.

+ + + + + + + + + + + + + + + + + +
TypeDefaultDetails
config_pathstrNonestr or pathlib.Path
+
+
+

The Config() object

+

The config module instantiates a config object from the Config class. Its attributes can be used to access several aspects relevant to the configuration of planetarypy. Using an object approach enables easy growth and nesting over time.

+
+
config = Config(config_path="test_config.toml")
+
+
+
assert config.storage_root == Path.home() / "planetarypy_data"
+
+
+

source

+
+

Config.get_value

+
+
 Config.get_value (key:str)
+
+

Get sub-dictionary by nested key.

+ +++++ + + + + + + + + + + + + + + + + + + + +
TypeDetails
keystrA nested key in dotted format, e.g. cassini.uvis.indexes
ReturnsstrReturning empty string if not existing, because Path(’’) is False which is handy (e.g. in ctx mod.)
+
+
config.list_indexes("mro.hirise")
+
+
['dtm', 'edr', 'rdr']
+
+
+
+
index = "missions.cassini.iss.indexes.moon_summary"
+
+
+
config.get_value(index)['url']
+
+
'https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_moon_summary.lbl'
+
+
+
+

source

+
+
+

Config.set_value

+
+
 Config.set_value (nested_key:str, value:Union[float,str], save:bool=True)
+
+

Set value in sub-dic using dotted key.

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
nested_keystrA nested key in dotted format, e.g. cassini.uvis.ring_summary
valueUnionValue for the given key to be stored
saveboolTrueSwitch to control writing out to disk
+
+

source

+
+
+

Config.save

+
+
 Config.save ()
+
+

Write the TOML doc to file.

+
+
config.get_value(index)['url']
+
+
'https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_moon_summary.lbl'
+
+
+
+
config.get_value("mro.ctx.datalevels")['edr']['url']
+
+
'https://pds-imaging.jpl.nasa.gov/data/mro/mars_reconnaissance_orbiter/ctx'
+
+
+
+

source

+
+
+

Config.ask_storage_root

+
+
 Config.ask_storage_root ()
+
+

Use input() to ask user for the storage_root path.

+

The path will be stored in the TOML-dict and saved into existing config file at Class.path, either default or as given during init. storage_root attribute is set as well.

+
+
config.missions
+
+
['cassini', 'mro', 'lro', 'go']
+
+
+
+
assert config.path.name == '.planetarypy_config.toml'
+
+
+
config.list_instruments("cassini")
+
+
['iss', 'uvis']
+
+
+
+
config.list_indexes("cassini.iss")
+
+
['index', 'inventory', 'moon_summary', 'ring_summary', 'saturn_summary']
+
+
+
+

source

+
+
+

Config.get_datalevels

+
+
 Config.get_datalevels (mission_instrument)
+
+

Return configured data levels available for an instrument.

+

This currently simply points to the indexes, assuming that everything that has an index is also its own datalevel. In case it ever is not, we can add more here.

+ + + + + + + + + + + + + +
Details
mission_instrumentmission.instrument code, e.g. mro.hirise
+
+
config.get_datalevels("mro.hirise")
+
+
['dtm', 'edr', 'rdr']
+
+
+
+
from nbdev import nbdev_export
+
+nbdev_export()
+
+ + +
+
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/api/ctx.html b/api/ctx.html new file mode 100644 index 0000000..56081d1 --- /dev/null +++ b/api/ctx.html @@ -0,0 +1,3244 @@ + + + + + + + + + + +planetarypy - CTX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

CTX

+
+ +
+
+ Utils for working with MRO CTX data +
+
+ + +
+ + + + +
+ + + +
+ + + +
+
import pandas as pd
+
+pd.set_option("display.max_columns", 1000)
+
+
+

source

+
+

get_edr_index

+
+
 get_edr_index (refresh=False)
+
+
+
get_edr_index(False)
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDFILE_SPECIFICATION_NAMEORIGINAL_PRODUCT_IDPRODUCT_IDIMAGE_TIMEINSTRUMENT_IDINSTRUMENT_MODE_IDLINE_SAMPLESLINESSPATIAL_SUMMINGSCALED_PIXEL_WIDTHPIXEL_ASPECT_RATIOEMISSION_ANGLEINCIDENCE_ANGLEPHASE_ANGLECENTER_LONGITUDECENTER_LATITUDEUPPER_LEFT_LONGITUDEUPPER_LEFT_LATITUDEUPPER_RIGHT_LONGITUDEUPPER_RIGHT_LATITUDELOWER_LEFT_LONGITUDELOWER_LEFT_LATITUDELOWER_RIGHT_LONGITUDELOWER_RIGHT_LATITUDEMISSION_PHASE_NAMETARGET_NAMESPACECRAFT_CLOCK_START_COUNTFOCAL_PLANE_TEMPERATURELINE_EXPOSURE_DURATIONOFFSET_MODE_IDSAMPLE_FIRST_PIXELSCALED_IMAGE_WIDTHSCALED_IMAGE_HEIGHTSPACECRAFT_ALTITUDETARGET_CENTER_DISTANCESLANT_DISTANCEUSAGE_NOTENORTH_AZIMUTHSUB_SOLAR_AZIMUTHSUB_SOLAR_LONGITUDESUB_SOLAR_LATITUDESUB_SPACECRAFT_LONGITUDESUB_SPACECRAFT_LATITUDESOLAR_DISTANCESOLAR_LONGITUDELOCAL_TIMEIMAGE_SKEW_ANGLERATIONALE_DESCDATA_QUALITY_DESCORBIT_NUMBERshort_pidmonth_col
0MROX_0001DATA/CRU_000001_9999_XN_99N999W.IMG4A_04_0001000400CRU_000001_9999_XN_99N999W2005-08-30 15:40:21.549CTXNIFL5056102410.00.0999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9CRUISESPACE0809883639:076283.310.0194/53/5300.00.00.00.00.0N0.00.00.00.00.00.00.0278.8910.160.0Instrument checkout image of spaceOK-4242CRU_000001_9999CRU
1MROX_0001DATA/CRU_000002_9999_XN_99N999W.IMG4A_04_0001000500CRU_000002_9999_XN_99N999W2005-09-08 15:59:45.313CTXNIFL50561536010.00.0999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9CRUISEMOON0810662403:012296.05.71196/243/23800.00.00.00.00.0N0.00.00.00.00.00.00.0284.484.60.0Calibration image of the MoonOK-4126CRU_000002_9999CRU
2MROX_0001DATA/CRU_000003_9999_XN_99N999W.IMG4A_04_0001000600CRU_000003_9999_XN_99N999W2005-09-08 16:03:37.927CTXNIFL5056204810.00.0999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9CRUISESTAR0810662635:169296.622.9196/243/23800.00.00.00.00.0N0.00.00.00.00.00.00.0284.484.660.0Calibration image of Omega Centauri (globular ...OK-4126CRU_000003_9999CRU
3MROX_0001DATA/CRU_000004_9999_XN_99N999W.IMG4A_04_0001000700CRU_000004_9999_XN_99N999W2005-09-08 16:08:23.841CTXNIFL5056204810.00.0999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9CRUISESTAR0810662921:147296.822.9196/243/23800.00.00.00.00.0N0.00.00.00.00.00.00.0284.484.740.0Calibration image of Omega Centauri (globular ...OK-4126CRU_000004_9999CRU
4MROX_0001DATA/CRU_000005_9999_XN_99N999W.IMG4A_04_0001000800CRU_000005_9999_XN_99N999W2005-09-08 16:11:18.649CTXNIFL50562150410.00.0999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9999.9CRUISEMOON0810663096:098297.15.71196/243/23800.00.00.00.00.0N0.00.00.00.00.00.00.0284.484.790.0Calibration image of the MoonOK-4126CRU_000005_9999CRU
..................................................................................................................................................................
142363MROX_4656DATA/U17_077781_1107_XI_69S045W.IMG4A_04_118B04B300U17_077781_1107_XI_69S045W2023-03-01 00:01:37.834CTXITL5056716815.061.194.9689.486.1745.21-69.4245.64-69.8244.42-69.7445.97-69.144.79-69.02ESPMARS1362096156:230294.01.877197/202/197025.3643.16252.63631.28253.48N279.93230.3796.4912.7446.17-69.47243271024.830.815.4290.1Southern autumn frost streak area in Viking 2 ...OK77781U17_077781_1107U17
142364MROX_4656DATA/U17_077781_1560_XN_24S055W.IMG4A_04_118A04B400U17_077781_1560_XN_24S055W2023-03-01 00:15:17.076CTXNIFL50563072015.131.190.0956.8456.7855.44-24.0855.48-25.6755.0-25.6255.88-22.5555.41-22.5ESPMARS1362096976:036293.91.877197/202/197025.68186.57256.543649.44256.54N276.89222.2899.912.7455.44-24.08243270437.830.8114.9690.2Ride-along with HiRISEOK77781U17_077781_1560U17
142365MROX_4656DATA/U17_077781_1683_XN_11S057W.IMG4A_04_118A04B500U17_077781_1683_XN_11S057W2023-03-01 00:19:04.486CTXNIFL50563174415.221.160.0949.8249.7657.0-11.7157.03-13.3556.58-13.2957.42-10.1256.98-10.06ESPMARS1362097203:141293.81.877197/202/197026.13192.71260.843656.22260.84N277.01214.98100.8312.7457.0-11.7243270441.730.8114.9190.2Terrain north of Coprates ChasmaOK77781U17_077781_1683U17
142366MROX_4656DATA/U17_077781_2027_XI_22N061W.IMG4A_04_118B04B600U17_077781_2027_XI_22N061W2023-03-01 00:29:24.818CTXITL50565222415.651.063.541.5638.0660.9622.860.8820.1560.3820.2161.5625.461.0425.45ESPMARS1362097823:226293.81.877197/202/197028.27312.92281.463674.69281.94N276.85180.29103.4212.7461.2522.78243271031.730.8114.8289.8Kasei Valles regionOK77781U17_077781_2027U17
142367MROX_4656DATA/U17_077781_2440_XN_64N067W.IMG4A_04_118A04B700U17_077781_2440_XN_64N067W2023-03-01 00:43:08.662CTXNIFL5056716816.220.945.4158.153.8867.7464.0768.2363.6867.0563.7568.4464.3867.2364.45ESPMARS1362098647:186293.81.877197/202/197031.1541.8309.793689.87311.07N277.1143.31106.5912.7468.7664.02243272920.630.8214.5989.9Ride-along with HiRISEOK77781U17_077781_2440U17
+ +

142368 rows × 53 columns

+
+
+
+
+
+

source

+
+
+

CTXEDR

+
+
 CTXEDR (pid:str, root:str='', with_volume=None, with_pid_folder=None,
+         refresh_index=False)
+
+

Manage access to EDR data

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
pidstrCTX product id (pid)
rootstralternative root folder for EDR data
with_volumeNoneTypeNonedoes the storage path include the volume folder
with_pid_folderNoneTypeNonecontrol if stuff is stored inside PID folders
refresh_indexboolFalse
+

PRODUCT_IDs can be provided in the shortened form (still unique), which are the first 15 characters of the full PRODUCT_ID:

+
+
pid = "F10_039666_1383"
+pid = "B01_009958_1524_XI_27S347W"
+
+
+
edr = CTXEDR(pid)
+
+
+

source

+
+
+

CTXEDR.pid

+
+
 CTXEDR.pid ()
+
+

Return product_id

+
+
edr.pid
+
+
'B01_009958_1524_XI_27S347W'
+
+
+
+
edr.short_pid
+
+
'B01_009958_1524'
+
+
+

These are the storage configuration settings:

+
+
edr.root
+
+
Path('/home/maye/big_drive/planetary_data/missions/mro/ctx/edr')
+
+
+
+
edr.with_pid_folder
+
+
True
+
+
+
+
edr.with_volume
+
+
True
+
+
+
+

source

+
+
+

CTXEDR.source_folder

+
+
 CTXEDR.source_folder ()
+
+

Calculate the source folder based on storage options with_pid_folder and with_volume.

+
+
edr.source_folder
+
+
Path('/home/maye/big_drive/planetary_data/missions/mro/ctx/edr/mrox_0684/B01_009958_1524_XI_27S347W')
+
+
+
+

source

+
+
+

CTXEDR.source_path

+
+
 CTXEDR.source_path ()
+
+

Combine source_folder with pid into full path.

+
+
edr.source_path
+
+
Path('/home/maye/big_drive/planetary_data/missions/mro/ctx/edr/mrox_0684/B01_009958_1524_XI_27S347W/B01_009958_1524_XI_27S347W.IMG')
+
+
+
+
edr.source_path.exists()
+
+
False
+
+
+
+

source

+
+
+

CTXEDR.meta

+
+
 CTXEDR.meta ()
+
+

get the metadata from the index table

+
+
edr.meta
+
+
volume_id                                                    MROX_0684
+file_specification_name            DATA/B01_009958_1524_XI_27S347W.IMG
+original_product_id                                   4A_04_103100F800
+product_id                                  B01_009958_1524_XI_27S347W
+image_time                                  2008-09-10 10:15:05.533000
+instrument_id                                                      CTX
+instrument_mode_id                                                 ITL
+line_samples                                                      5056
+lines                                                            18432
+spatial_summing                                                      1
+scaled_pixel_width                                                5.13
+pixel_aspect_ratio                                                1.18
+emission_angle                                                    1.08
+incidence_angle                                                  71.46
+phase_angle                                                      70.61
+center_longitude                                                347.59
+center_latitude                                                 -27.64
+upper_left_longitude                                            347.71
+upper_left_latitude                                              -28.6
+upper_right_longitude                                           347.22
+upper_right_latitude                                            -28.55
+lower_left_longitude                                            347.96
+lower_left_latitude                                             -26.73
+lower_right_longitude                                           347.47
+lower_right_latitude                                            -26.68
+mission_phase_name                                                 PSP
+target_name                                                       MARS
+spacecraft_clock_start_count                            0905508925:217
+focal_plane_temperature                                          292.8
+line_exposure_duration                                           1.877
+offset_mode_id                                             196/190/181
+sample_first_pixel                                                   0
+scaled_image_width                                               25.69
+scaled_image_height                                             111.85
+spacecraft_altitude                                             256.72
+target_center_distance                                         3648.65
+slant_distance                                                  256.76
+usage_note                                                           N
+north_azimuth                                                   276.86
+sub_solar_azimuth                                                223.2
+sub_solar_longitude                                              42.32
+sub_solar_latitude                                               20.59
+sub_spacecraft_longitude                                        347.68
+sub_spacecraft_latitude                                         -27.64
+solar_distance                                             239051686.0
+solar_longitude                                                 125.14
+local_time                                                       15.66
+image_skew_angle                                                  90.2
+rationale_desc                  Valley trace in northern Noachis Terra
+data_quality_desc                                                   OK
+orbit_number                                                      9958
+short_pid                                              B01_009958_1524
+month_col                                                          B01
+Name: 16153, dtype: object
+
+
+
+

source

+
+
+

CTXEDR.url

+
+
 CTXEDR.url ()
+
+

Calculate URL from input dataframe row.

+
+

source

+
+
+

CTXEDR.download

+
+
 CTXEDR.download (overwrite=False)
+
+

Download and store correctly the EDR data, if not locally available.

+ + + + + + + + + + + + + + + + + +
TypeDefaultDetails
overwriteboolFalseuse overwrite to download in all cases.
+
+
edr.download()
+
+ +
+
+
+
edr.source_path
+
+
Path('/home/maye/big_drive/planetary_data/missions/mro/ctx/edr/mrox_0684/B01_009958_1524_XI_27S347W.IMG')
+
+
+
+

source

+
+
+

CTXEDR.__str__

+
+
 CTXEDR.__str__ ()
+
+

Show some info about yourself when returned in a REPL (like ipython/jupyter).

+
+
Path(config.get_value("mro.ctx.preproc_root"))
+
+
Path('/remote/trove/geo/planet/Mars/CTX/special/cal_noflat')
+
+
+
+

source

+
+
+

CTX

+
+
 CTX (id_:str, source_dir:str='', proc_root:str='', with_volume=None,
+      with_pid_folder=None, use_preproc=False)
+
+

Class to manage dealing with CTX data.

+

HAS a CTXEDR attribute as defined above. Attributes from CTXEDR are availalbe via getattr()

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
id_strCTX product id
source_dirstrwhere the raw EDR data is stored, if not coming from plpy
proc_rootstrwhere to store processed, if not plpy
with_volumeNoneTypeNonestore with extra volume subfolder?
with_pid_folderNoneTypeNonestore with extra product_id subfolder?
use_preprocboolFalseuse preproc for cal_da
+
+
pid = "N05_064260_1638_XI_16S351W"
+
+
+
ctx = CTX(pid)
+
+
+
ctx.save_as_tif()
+
+
File exists. Use `refresh=True` to force recreation.
+
+
+
+
str(ctx.map_path)
+
+
'/home/ayek72/mnt/slowdata/planetarypy/missions/mro/ctx/edr/mrox_3629/N05_064260_1638_XI_16S351W/N05_064260_1638_XI_16S351W.lev2.cub'
+
+
+
+
ctx.proc_folder / ctx.map_name.with_suffix(".tif")
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/ctx/edr/mrox_3629/N05_064260_1638_XI_16S351W/N05_064260_1638_XI_16S351W.lev2.tif')
+
+
+
+
ctx.cal_da
+
+
+ + + + + + + + + + + + + + +
<xarray.DataArray 'N05_064260_1638 calibrated' (y: 15360, x: 5000)>
+[76800000 values with dtype=float32]
+Coordinates:
+  * x        (x) float64 0.5 1.5 2.5 3.5 ... 4.996e+03 4.998e+03 4.998e+03 5e+03
+  * y        (y) float64 0.5 1.5 2.5 3.5 ... 1.536e+04 1.536e+04 1.536e+04
+Attributes:
+    BANDWIDTH:        0.15
+    BANDWIDTH_UNIT:   micrometers
+    WAVELENGTH:       0.65
+    WAVELENGTH_UNIT:  micrometers
+    scale_factor:     1.0
+    add_offset:       0.0
+    long_name:        BroadBand
+
+
+
+
ctx.preproc_cal_path
+
+
Path('/remote/trove/geo/planet/Mars/CTX/special/cal_noflat/mrox_3629/N05_064260_1638_XI_16S351W.ctxcal.cub')
+
+
+

Based on storage options with_pid_folder and with_volume, we calculate the proc_folder for self-processed data:

+
+

source

+
+
+

CTX.proc_folder

+
+
 CTX.proc_folder ()
+
+

the folder for foreign processed data, like pre-processed calibrated data, e.g.

+
+
ctx.proc_folder
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/ctx/edr/mrox_3629/N05_064260_1638_XI_16S351W')
+
+
+

These can be changed at object creation:

+
+
CTX(pid, with_volume=True, with_pid_folder=True).source_folder
+
+
Path('/remote/trove/geo/planet/Mars/CTX/pds/mrox_3629')
+
+
+
+

source

+
+
+

CTX.cal_path

+
+
 CTX.cal_path ()
+
+

Path to calibrated cube file. Also destriped files get this name.

+
+
ctx.cal_path
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/ctx/edr/mrox_3629/N05_064260_1638_XI_16S351W/N05_064260_1638_XI_16S351W.cal.cub')
+
+
+
+

source

+
+
+

CTX.calib_pipeline

+
+
 CTX.calib_pipeline (overwrite=False)
+
+

Execute the whole ISIS pipeline for CTX EDR data.

+
+
ctx.proc_folder
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/ctx/edr/mrox_3629/N05_064260_1638_XI_16S351W')
+
+
+
+
ctx.isis_import()
+
+
+
ctx.spice_init(web="yes")
+
+
+
ctx.calibrate()
+
+
+
ctx.destripe()
+
+
+
# not executing always, as it takes lot of time
+# ctx.map_project()
+
+
+
ctx.map_path
+
+
+
ctx.calib_pipeline()
+
+
+

source

+
+
+

CTX.plot_edr

+
+
 CTX.plot_edr ()
+
+

Plot EDR xarray using hvplot.

+
+
ctx.plot_edr()
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+Note +
+
+
+

Note the different shape of EDR data and calibrated data. A few SAMPLES are being used for calibration.

+
+
+
+
ctx.edr_shape
+
+
(15360, 5056)
+
+
+
+
ctx.cal_shape
+
+
(15360, 5000)
+
+
+
+
ctx.plot_calibrated()
+
+ +
+
+
+
+
+ +
+
+
+

source

+
+
+

CTXCollection

+
+
 CTXCollection (product_ids, full_width=False, filter_error=False,
+                edrindex=None)
+
+

Class with several helpful methods to work with a set of CTX images.

+

We identify the images via a list of product_ids. Several methods manipulate this list based on the requested constraint.

+

The CTXCollection class offers a few class methods for a wider range of finding CTX product_ids from the index file:

+
+

source

+
+
+

CTXCollection.by_volume

+
+
 CTXCollection.by_volume (vol_id, **kwargs)
+
+

Create a CTXCollection from the PDS volume number.

+
+
CTXCollection.by_volume(4114).n_items
+
+
30
+
+
+
+
CTXCollection.by_volume(4114, full_width=True).n_items
+
+
19
+
+
+
+
CTXCollection.by_volume(4114, full_width=True, filter_error=True).n_items
+
+
14
+
+
+
+
CTXCollection.by_volume(4114, full_width=False, filter_error=True).n_items
+
+
23
+
+
+
+

source

+
+
+

CTXCollection.by_month

+
+
 CTXCollection.by_month (month_letters, nth_volume=None, **kwargs)
+
+

Create a CTXCollection based on the first 3 letters of the product_id (a.k.a. “month”)

+
+
CTXCollection.by_month("J18", filter_error=True, full_width=True).n_items
+
+
287
+
+
+
+

source

+
+
+

CTXCollection.volume_from_pid

+
+
 CTXCollection.volume_from_pid (pid, **kwargs)
+
+

Get a CTXCollection of the volume for a given image (product_id).

+

We define an example list of product_ids:

+
+
ids = get_edr_index().sample(3, random_state=41).PRODUCT_ID
+ids
+
+
41779    G16_024548_2195_XI_39N161W
+33475    G02_018931_1907_XI_10N166W
+45075    G20_026104_2617_XN_81N181W
+Name: PRODUCT_ID, dtype: string
+
+
+
+
CTXCollection.volume_from_pid(ids.values[0]).n_items  # getting the whole volume here
+
+
56
+
+
+
+
coll = CTXCollection(ids)
+
+
+
coll.edr_exist_check()
+
+
[('G02_018931_1907_XI_10N166W', True),
+ ('G16_024548_2195_XI_39N161W', True),
+ ('G20_026104_2617_XN_81N181W', True)]
+
+
+
+
coll.get_urls()
+
+
[URL('https://pds-imaging.jpl.nasa.gov/data/mro/mars_reconnaissance_orbiter/ctx/mrox_1200/data/G02_018931_1907_XI_10N166W.IMG'),
+ URL('https://pds-imaging.jpl.nasa.gov/data/mro/mars_reconnaissance_orbiter/ctx/mrox_1422/data/G16_024548_2195_XI_39N161W.IMG'),
+ URL('https://pds-imaging.jpl.nasa.gov/data/mro/mars_reconnaissance_orbiter/ctx/mrox_1532/data/G20_026104_2617_XN_81N181W.IMG')]
+
+
+

The next command launches a parallel download:

+
+
coll.download_collection(overwrite=False)
+
+
Downloading collection...
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+
+
+ +
+
+

This is performing the ISIS import and calibration in parallel:

+
+
coll.calibrate_collection()
+
+
+
coll.calib_exist_check()
+
+
[('G02_018931_1907_XI_10N166W', False),
+ ('G16_024548_2195_XI_39N161W', False),
+ ('G20_026104_2617_XN_81N181W', False)]
+
+
+
+
coll = CTXCollection.by_volume(4114)
+
+
+
coll.product_ids
+
+
<StringArray>
+['N20_069979_1676_XI_12S177W', 'N20_069980_1676_XI_12S205W',
+ 'N20_069981_1919_XI_11N234W', 'N20_069982_1380_XI_42S255W',
+ 'N20_069982_1820_XI_02N261W', 'N20_069982_2287_XN_48N269W',
+ 'N20_069983_1442_XI_35S283W', 'N20_069984_1686_XI_11S313W',
+ 'N20_069984_2097_XI_29N319W', 'N20_069985_2064_XI_26N345W',
+ 'N20_069986_2025_XI_22N012W', 'N20_069987_2243_XN_44N042W',
+ 'N20_069991_1451_XI_34S142W', 'N20_069991_1940_XI_14N149W',
+ 'N20_069992_1761_XI_03S173W', 'N20_069993_1724_XI_07S200W',
+ 'N20_069994_1753_XI_04S227W', 'N20_069995_1633_XI_16S254W',
+ 'N20_069995_2028_XI_22N258W', 'N20_069996_2085_XN_28N285W',
+ 'N20_069997_1479_XI_32S306W', 'N20_069999_1558_XI_24S003W',
+ 'N20_070004_1931_XI_13N144W', 'N20_070006_1430_XI_37S191W',
+ 'N20_070007_1793_XI_00S223W', 'N20_070009_2018_XN_21N282W',
+ 'N20_070010_1466_XI_33S301W', 'N20_070011_1507_XI_29S328W',
+ 'N20_070011_2252_XI_45N338W', 'N20_070012_1824_XN_02N001W']
+Length: 30, dtype: string
+
+
+
+

source

+
+
+

CTXCollection.get_corrupted

+
+
 CTXCollection.get_corrupted ()
+
+

Return the product_ids where the PDS index file has an ‘ERROR’ flag for the DATA_QUALITY_DESC field.

+
+
coll.get_corrupted()
+
+
['N20_069991_1451_XI_34S142W',
+ 'N20_069992_1761_XI_03S173W',
+ 'N20_069993_1724_XI_07S200W',
+ 'N20_069994_1753_XI_04S227W',
+ 'N20_069997_1479_XI_32S306W',
+ 'N20_070010_1466_XI_33S301W',
+ 'N20_070012_1824_XN_02N001W']
+
+
+
+

source

+
+
+

CTXCollection.n_items

+
+
 CTXCollection.n_items ()
+
+

Return length of product_ids list.

+
+
coll.n_items
+
+
30
+
+
+
+

source

+
+
+

CTXCollection.sample

+
+
 CTXCollection.sample (n)
+
+

Return random sample of product_ids, size n.

+
+
coll.sample(4)
+
+
['N20_070006_1430_XI_37S191W',
+ 'N20_069999_1558_XI_24S003W',
+ 'N20_069986_2025_XI_22N012W',
+ 'N20_069983_1442_XI_35S283W']
+
+
+
+

source

+
+
+

CTXCollection.meta

+
+
 CTXCollection.meta ()
+
+

Return the index file filtered for the given product_ids.

+
+
coll.meta.head()
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDFILE_SPECIFICATION_NAMEORIGINAL_PRODUCT_IDPRODUCT_IDIMAGE_TIMEINSTRUMENT_IDINSTRUMENT_MODE_IDLINE_SAMPLESLINESSPATIAL_SUMMINGSCALED_PIXEL_WIDTHPIXEL_ASPECT_RATIOEMISSION_ANGLEINCIDENCE_ANGLEPHASE_ANGLECENTER_LONGITUDECENTER_LATITUDEUPPER_LEFT_LONGITUDEUPPER_LEFT_LATITUDEUPPER_RIGHT_LONGITUDEUPPER_RIGHT_LATITUDELOWER_LEFT_LONGITUDELOWER_LEFT_LATITUDELOWER_RIGHT_LONGITUDELOWER_RIGHT_LATITUDEMISSION_PHASE_NAMETARGET_NAMESPACECRAFT_CLOCK_START_COUNTFOCAL_PLANE_TEMPERATURELINE_EXPOSURE_DURATIONOFFSET_MODE_IDSAMPLE_FIRST_PIXELSCALED_IMAGE_WIDTHSCALED_IMAGE_HEIGHTSPACECRAFT_ALTITUDETARGET_CENTER_DISTANCESLANT_DISTANCEUSAGE_NOTENORTH_AZIMUTHSUB_SOLAR_AZIMUTHSUB_SOLAR_LONGITUDESUB_SOLAR_LATITUDESUB_SPACECRAFT_LONGITUDESUB_SPACECRAFT_LATITUDESOLAR_DISTANCESOLAR_LONGITUDELOCAL_TIMEIMAGE_SKEW_ANGLERATIONALE_DESCDATA_QUALITY_DESCORBIT_NUMBERshort_pidmonth_col
127546MROX_4114DATA/N20_069979_1676_XI_12S177W.IMG4A_04_1165000100N20_069979_1676_XI_12S177W2021-07-01 02:22:53.651CTXITL50564300815.31.145.365.1861.08177.4-12.53177.37-14.74176.91-14.69177.89-10.37177.43-10.32ESPMARS1309573428:228291.31.877196/188/183026.53260.74262.713657.97263.76N276.79219.82233.323.12177.78-12.56249116269.665.9715.7290.2Northern Terra SirenumOK69979N20_069979_1676N20
127547MROX_4114DATA/N20_069980_1676_XI_12S205W.IMG4A_04_1165000200N20_069980_1676_XI_12S205W2021-07-01 04:15:32.600CTXITL50561843215.261.152.4864.9963.03204.93-12.5205.04-13.46204.59-13.41205.26-11.59204.81-11.53ESPMARS1309580187:215290.91.877196/188/183026.34111.73262.543657.8262.77N276.75219.87260.6223.13205.11-12.51249117636.266.015.7190.1Valleys in Terra CimmeriaOK69980N20_069980_1676N20
127548MROX_4114DATA/N20_069981_1919_XI_11N234W.IMG4A_04_1165000300N20_069981_1919_XI_11N234W2021-07-01 06:14:46.674CTXITL50565222415.621.078.1353.4346.2234.6411.91234.589.25234.19.3235.214.52234.7114.57ESPMARS1309587341:234291.11.877196/188/183028.12314.36275.313670.67277.89N276.65206.74289.7623.14235.2711.85249118514.066.0415.6690.0Nepenthes Planum regionOK69981N20_069981_1919N20
127549MROX_4114DATA/N20_069982_1380_XI_42S255W.IMG4A_04_1165000400N20_069982_1380_XI_42S255W2021-07-01 07:50:56.614CTXITL25287168210.251.194.8783.9880.5255.35-42.07255.52-42.83254.94-42.77255.75-41.37255.18-41.32ESPMARS1309593111:219291.21.884196/188/183025.6587.09254.993642.26255.85N276.84225.48313.0223.14255.8-42.1249121323.666.0715.8490.1Apron in the Hellas Montes regionOK69982N20_069982_1380N20
127550MROX_4114DATA/N20_069982_1820_XI_02N261W.IMG4A_04_1165000500N20_069982_1820_XI_02N261W2021-07-01 08:03:55.615CTXITL50565222415.421.115.1157.4753.17261.022.02260.94-0.66260.49-0.6261.574.63261.114.69ESPMARS1309593890:219291.01.877196/188/183027.13315.79268.723664.89269.71N276.84213.19316.3323.14261.41.98249120029.266.0715.6790.1Tyrrhena TerraOK69982N20_069982_1820N20
+ +
+
+
+
+
+

source

+
+
+

CTXCollection.image_times

+
+
 CTXCollection.image_times ()
+
+

Return the image observation times.

+
+
coll.image_times
+
+
127546   2021-07-01 02:22:53.651
+127547   2021-07-01 04:15:32.600
+127548   2021-07-01 06:14:46.674
+127549   2021-07-01 07:50:56.614
+127550   2021-07-01 08:03:55.615
+127551   2021-07-01 08:19:18.963
+127552   2021-07-01 09:44:54.631
+127553   2021-07-01 11:44:29.607
+127554   2021-07-01 11:57:15.646
+127555   2021-07-01 13:48:19.595
+127556   2021-07-01 15:39:04.638
+127557   2021-07-01 17:38:53.212
+127558   2021-07-02 00:42:16.641
+127559   2021-07-02 00:57:36.688
+127560   2021-07-02 02:44:15.621
+127561   2021-07-02 04:35:30.668
+127562   2021-07-02 06:28:38.621
+127563   2021-07-02 08:16:50.660
+127564   2021-07-02 08:29:27.601
+127565   2021-07-02 10:23:41.558
+127566   2021-07-02 11:56:54.648
+127567   2021-07-02 15:43:37.659
+127568   2021-07-03 01:16:03.651
+127569   2021-07-03 04:45:28.607
+127570   2021-07-03 06:48:35.596
+127571   2021-07-03 10:40:22.119
+127572   2021-07-03 12:14:51.615
+127573   2021-07-03 14:08:48.673
+127574   2021-07-03 14:31:39.582
+127575   2021-07-03 16:10:56.454
+Name: IMAGE_TIME, dtype: datetime64[ns]
+
+
+

Also cool: pandas can do time-average:

+
+
coll.image_times.mean()
+
+
Timestamp('2021-07-02 05:45:11.936933376')
+
+
+
+

source

+
+
+

CTXCollection.get_ctx_n

+
+
 CTXCollection.get_ctx_n (n)
+
+

Get CTX object for n-th product_id

+
+
coll.get_ctx_n(2)
+
+
PRODUCT_ID: N20_069981_1919_XI_11N234W
+URL: https://pds-imaging.jpl.nasa.gov/data/mro/mars_reconnaissance_orbiter/ctx/mrox_4114/data/N20_069981_1919_XI_11N234W.IMG
+source_path: /remote/trove/geo/planet/Mars/CTX/pds/mrox_4114/N20_069981_1919_XI_11N234W.IMG
+Shape: (52224, 5056)
+
+
+
+

source

+
+
+

CTXCollection.get_pid_n

+
+
 CTXCollection.get_pid_n (n)
+
+

Get pid for n-th entry in product_ids.

+
+
coll.get_pid_n(2)
+
+
'N20_069981_1919_XI_11N234W'
+
+
+
+
coll = CTXCollection.by_month("N21")
+
+
+
len(coll.product_ids)
+
+
342
+
+
+
+
coll
+
+
# of product IDs: 342
+Volumes contained in list of product_ids:
+<StringArray>
+['MROX_4126', 'MROX_4127', 'MROX_4128', 'MROX_4129', 'MROX_4130', 'MROX_4131',
+ 'MROX_4132', 'MROX_4133']
+Length: 8, dtype: string
+
+
+
+
+

Command line interfaces

+
+

source

+
+

ctx_calib

+
+
 ctx_calib (pid:str, source:str='', proc_root:str='',
+            overwrite:bool=False)
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
pidstrCTX product_id
sourcestrpath to where EDRs are stored if not from plpy
proc_rootstrpath to where processed data is to be stored
overwriteboolFalseoverwrite processed data
+
+
ctx_calib(pid, overwrite=True)
+
+
+
from nbdev import nbdev_export
+
+nbdev_export()
+
+ + +
+
+ +
+ + +
+ + + + + \ No newline at end of file diff --git a/api/diviner.html b/api/diviner.html new file mode 100644 index 0000000..6482e1f --- /dev/null +++ b/api/diviner.html @@ -0,0 +1,844 @@ + + + + + + + + + + +planetarypy - Diviner + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Diviner

+
+ +
+
+ Tools to work with Diviner PDS data +
+
+ + +
+ + + + +
+ + + +
+ + + +
+

source

+
+

DataManager

+
+
 DataManager (tstr)
+
+

Initialize self. See help(type(self)) for accurate signature.

+
+
dm = DataManager("2010010110")
+
+
+
dm.local_path
+
+
+

source

+
+
+

read_l1a_data

+
+
 read_l1a_data (fname, nrows=None)
+
+
+

source

+
+
+

L1AHeader

+
+
 L1AHeader ()
+
+

Initialize self. See help(type(self)) for accurate signature.

+
+

source

+
+
+

parse_header_line

+
+
 parse_header_line (line)
+
+

Parse header lines.

+
+
+
+

s = ’ a b c ’ parse_header_line(s) [‘a’, ‘b’, ‘c’] s = ’ a, b , c ’ parse_header_line(s) [‘a’, ‘b’, ‘c’]

+
+
+
+
+
dm = DataManager("2010010110")
+
+
+
dm.download()
+
+
+
dm.volume
+
+
+
dm.url
+
+
+
df = pd.read_csv(
+    dm.local_path,
+    comment="#",
+    # names=L1AHeader.columns,
+    na_values="-9999",
+    skipinitialspace=True,
+)
+df.head()
+
+
+
pd.set_option("display.max_columns", 200)
+
+
+
df.index
+
+
+
dm.local_path
+
+
+

source

+
+
+

get_data_path

+
+
 get_data_path (tstr)
+
+
+
get_data_path("2017010110")
+
+ + +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/api/exceptions.html b/api/exceptions.html new file mode 100644 index 0000000..906ea55 --- /dev/null +++ b/api/exceptions.html @@ -0,0 +1,796 @@ + + + + + + + + + + +planetarypy - Package exceptions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Package exceptions

+
+ +
+
+ Specialized exceptions that provide better feed-back +
+
+ + +
+ + + + +
+ + + +
+ + + +
+

source

+
+

MissingParameterError

+
+
 MissingParameterError (txt)
+
+

Base class for exceptions in this module.

+
+

source

+
+
+

SpiceError

+
+
 SpiceError (function)
+
+

Base class for exceptions in this module.

+
+

source

+
+
+

ObserverNotSetError

+

Base class for exceptions in this module.

+
+

source

+
+
+

SPointNotSetError

+

Base class for exceptions in this module.

+
+

source

+
+
+

SpicerError

+

Base class for exceptions in this module.

+
+

source

+
+
+

GeoTransformNotSetError

+
+
 GeoTransformNotSetError (where, what)
+
+

Exception raised for errors in the input of transformations.

+

Attributes: where – where is something missing what – what is missing

+
+

source

+
+
+

ProjectionNotSetError

+
+
 ProjectionNotSetError (where, what)
+
+

Exception raised for errors in the input of transformations.

+

Attributes: where – where is something missing what – what is missing

+
+

source

+
+
+

SomethingNotSetError

+
+
 SomethingNotSetError (where, what)
+
+

Exception raised for errors in the input of transformations.

+

Attributes: where – where is something missing what – what is missing

+
+

source

+
+
+

Error

+

Base class for exceptions in this module.

+ + +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/api/geotools.html b/api/geotools.html new file mode 100644 index 0000000..91a06ad --- /dev/null +++ b/api/geotools.html @@ -0,0 +1,1088 @@ + + + + + + + + + + +planetarypy - Geotools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Geotools

+
+ +
+
+ Utilities to work with geo-referenced (image) data. (GDAL required) +
+
+ + +
+ + + + +
+ + + +
+ + + +
+

Abbreviations

+
    +
  • ul = Upper Left
  • +
  • lr = LowerRight
  • +
+
+

source

+
+

pixel_to_meter

+
+
 pixel_to_meter (sample, line, geotransform, shift=False)
+
+

provide point in map projection coordinates.

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
sample
line
geotransform
shiftboolFalse
Returnstuple (x,y) coordinates in the projection of the dataset
+
+

source

+
+
+

shift_to_center

+
+
 shift_to_center (x, y, geotransform)
+
+
+

source

+
+
+

debug_srs

+
+
 debug_srs (projection)
+
+

Correct wrong scale_factor in PolarStereographic data.

+

Some PolarStereographic data have a 0 as a scale_factor in the projection (mostly MOLA), which is being corrected here. TODO: Check for being PolarStereographic before doing this!

+
+

source

+
+
+

get_sun_angles

+
+
 get_sun_angles (spicer, img)
+
+

Calculate solar azimuth and incidence.

+

By requiring a spicer object for this function, it becomes independent from the solar system object where the calculations are made.

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDetails
spicerspicer.Spicerneeds to be setup for time, but spoint is set from img.center in here.
imggeotools.ImgDataThe image data of which the center point serves as the start point.
Returnstuple(float, float)Solar azimuth, incidence [degrees]
+
+

source

+
+
+

calculate_image_north_azimuth

+
+
 calculate_image_north_azimuth (img, zero='right')
+
+
+

source

+
+
+

get_north_shifted_point

+
+
 get_north_shifted_point (img, offset=0.001)
+
+

Increasing the latitude is a sure way of getting north.

+
+

source

+
+
+

calculate_image_azimuth

+
+
 calculate_image_azimuth (origPoint, newPoint, zero='right')
+
+

Calculate azimuth angle between 2 image points.

+

Beware that this function calculates trigonometric angles. If the points are from an image that has (0, 0) in the upper left, this means that the angles increase clockwise. That is why, for example, for an HiRISE image, the return of this function matches the angle rotation definition for HiRISE data.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
origPoint
newPoint
zerostrright
Returnsazimuth: Azimuth angle
+
/home/runner/micromamba/envs/my-env/lib/python3.12/site-packages/fastcore/docscrape.py:225: UserWarning: Unknown section Requires
+  else: warn(msg)
+
+

source

+
+
+

Point

+
+
 Point (sample=None, line=None, x=None, y=None, lon=None, lat=None,
+        geotrans=None, proj=None)
+
+

Point class to manage pixel and map points and their transformations.

+
+

source

+
+
+

Window

+
+
 Window (ulPoint=None, lrPoint=None, centerPoint=None, width=None)
+
+

class to manage a window made of corner Points (objects of Point())

+

when using width, only quadratic windows supported currently >>> p1 = Point(0, 1) >>> p2 = Point(10,20)

+
+

source

+
+
+

ImgData

+
+
 ImgData (fname=None)
+
+

docstring for ImgData

+
+
# todo: Fix missing MOLA class
+#| export
+# class CTX(ImgData):
+#     """docstring for CTX"""
+
+#     def __init__(self, fname):
+#         ImgData.__init__(self, fname)
+
+#     def add_mola_contours(self):
+#         self.window_coords_to_lonlat()
+#         mola = MOLA()
+#         mola.window = self.window.copy()
+#         mola.window_coords_to_pixel()
+#         mola.read_window(mola.window)
+#         mola.data = mola.data - mola.data.mean()
+#         fig = plt.figure(figsize=(10, 10))
+#         ax = fig.add_subplot(111)
+#         plt.gray()
+#         ax.imshow(self.data, extent=self.window.get_extent(self.dataset))
+#         CS = ax.contour(
+#             mola.data,
+#             8,
+#             cmap=cm.jet,
+#             extent=self.window.get_extent(self.dataset),
+#             origin="image",
+#         )
+#         plt.clabel(CS, fontsize=13, inline=1)
+#         ax.set_xlabel("Polar stereographic X [km]")
+#         ax.set_ylabel("Polar stereographic Y [km]")
+#         ax.set_title("CTX: " + os.path.basename(self.fname))
+#         self.ax = ax
+#         plt.show()
+
+
+
# def combine_ctx_and_mola(ctxFilename, ctxSample, ctxLine, ctxWidth):
+#     """combine CTX and MOLA data.
+#
+#     MOLA and CTX data will be combined with these tools.
+#     User shall provide line,sample center coordinate of CTX file ROI to
+#     define distance in meters from southpole.
+#     """
+#
+#     ctx = CTX(ctxFilename)
+#     mola = MOLA()
+#     ctxULsample, ctxULline, ctxLRsample, ctxLRline = \
+#         get_corners_from_center(ctxSample, ctxLine, ctxWidth)
+#     ulX,ulY = get_coords_from_pixels(ctxDS, ctxULsample, ctxULline)
+#     lrX,lrY = get_coords_from_pixels(ctxDS, ctxLRsample, ctxLRline)
+#
+#     molaULsample,molaULline = get_pixels_from_coords(molaDS,ulX,ulY)
+#     molaLRsample,molaLRline = get_pixels_from_coords(molaDS,lrX,lrY)
+#     print(ctxULsample, ctxULline, ctxLRsample, ctxLRline)
+#     print(molaULsample, molaULline,molaLRsample, molaLRline)
+#     print(ulX,ulY,lrX,lrY)
+#     ctxData = ctxDS.ReadAsArray(ctxULsample,ctxULline,ctxWidth,ctxWidth)
+#     molaData = molaDS.ReadAsArray(int(molaULsample)+1,int(molaULline),
+#                                   int(molaLRsample - molaULsample),
+#                                   int(molaLRline - molaULline))
+#
+#     molaData = molaData - molaData.mean()
+#
+#     # x = np.arange(ulX,lrX)
+#     # y = np.arange(lrY,ulY)
+#     # X, Y = np.meshgrid(x,y)
+#     # plotting
+#     fig = plt.figure(figsize=(10,10))
+#     ax = fig.add_subplot(111)
+#     plt.gray()
+#     ax.imshow(ctxData, extent=(min(ulX,lrX),max(ulX,lrX),min(ulY,lrY),
+#                                      max(ulY,lrY)))
+#     CS = ax.contour(molaData, 20, cmap = cm.jet,
+#                      extent=(min(ulX,lrX),
+#                              max(ulX,lrX),
+#                              min(ulY,lrY),
+#                              max(ulY,lrY)),
+#                      origin='image' )
+#     plt.clabel(CS,fontsize=9, inline=1)
+#     plt.show()
+
+# def main(argv=None):
+#     """docstring for main"""
+#     from mayavi import mlab
+
+#     if argv is None:
+#         argv = sys.argv
+
+#     x1 = x2 = y1 = y2 = 0
+#     fname = ""
+#     try:
+#         fname = argv[1]
+#         x1, x2, y1, y2 = [int(i) for i in argv[2:]]
+#     except:
+#         print("Usage: {0} fname x1 x2 y1 y2".format(argv[0]))
+
+#     print(x1, x2, y1, y2)
+#     ds = gdal.Open(fname)
+#     band = ds.GetRasterBand(1)
+#     STORED_VALUE = band.ReadAsArray(x1, y1, x2 - x1, y2 - y1)
+#     ds = 0
+
+#     # PDS label infos:
+#     SCALING_FACTOR = 0.25
+#     OFFSET = -8000
+#     topo = (STORED_VALUE * SCALING_FACTOR) + OFFSET
+#     mlab.surf(topo, warp_scale=1 / 115.0, vmin=1700)
+#     mlab.colorbar(orientation="vertical", title="Height [m]", label_fmt="%4.0f")
+#     mlab.show()
+
+ + +
+
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/api/hirise.html b/api/hirise.html new file mode 100644 index 0000000..06445b5 --- /dev/null +++ b/api/hirise.html @@ -0,0 +1,1869 @@ + + + + + + + + + + +planetarypy - HiRISE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

HiRISE

+
+ +
+
+ Data management for HiRISE data. +
+
+ + +
+ + + + +
+ + + +
+ + + +
+

source

+
+

OBSID

+
+
 OBSID (obsid:str)
+
+

Manage HiRISE observation ids.

+

For example PSP_003092_0985. phase is set to PSP for orbits < 11000, no setting required.

+ + + + + + + + + + + + + + + +
TypeDetails
obsidstre.g. PSP_003092_0985
+
+
obsid = OBSID("PSP_003092_0985")
+obsid
+
+
PSP_003092_0985
+
+
+
+
assert obsid.orbit == "003092"
+
+
+
assert obsid.targetcode == "0985"
+
+
+
assert obsid.phase == "PSP"
+
+
+
assert obsid.upper_orbit_folder == "ORB_003000_003099"
+
+
+
assert obsid.storage_path_stem == "PSP/ORB_003000_003099/PSP_003092_0985"
+
+
+

source

+
+
+

ProductPathfinder

+
+
 ProductPathfinder (initstr:str, check_url:bool=True)
+
+

Determine paths and URLs for HiRISE RDR products (also EXTRAS.)

+

We use the PDS definition of PRODUCT_ID here, e.g. PSP_003092_0985_RED.

+

Attributes jp2_path and label_path get you the official RDR mosaic product, with kind steering if you get the COLOR or the RED product. All other properties go to the RDR/EXTRAS folder. The “PDS” part of the path is handled in the OBSID class.

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
initstrstrPRODUCT_ID string, e.g. PSP_003092_0985_RED
check_urlboolTruefor performance, the user might not want the url check
+
+
pid = "ESP_039983_1390_RED"
+
+
+
ppf = ProductPathfinder(pid)
+
+
+
ppf.storage_stem
+
+
'ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED'
+
+
+
+
ppf.local_label_path.exists()
+
+
False
+
+
+
+
ppf.edr_storage_stem
+
+
Path('EDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED')
+
+
+
+
ppf.download_label()
+
+ +
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/ESP_039983_1390/ESP_039983_1390_RED.LBL')
+
+
+
+
ppf.go_to_homepage()
+
+
4;1HPS connection to uahirise.org[22;24H                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Getting https://uahirise.org/ESP_039983_1390                                    
+
+
+
+
ppf.homepage
+
+
'https://uahirise.org/ESP_039983_1390'
+
+
+
+
assert isinstance(ppf.obsid, OBSID)
+
+
+
assert ppf.kind == "RED"
+
+
+
assert ppf.label_fname == "ESP_039983_1390_RED.LBL"
+
+
+
assert ppf.label_path == Path('RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.LBL')
+
+
+
+

Paths and URLS

+

Each xxx_path attribute is also available as xxx_url, and accessing the _url parameter immediately checks for its existence on the server.

+
+
# little helper to show attributes inside ProductPathfinder object...
+def _isprop(v):
+    return isinstance(v, property)
+
+
+def _get_properties(classname, substring):
+    names = [name for (name, value) in inspect.getmembers(classname, _isprop) if name.endswith(substring)]
+    return names
+
+
+
# Here I'm checking that all _url versions work, each access checks for existence:
+for prop in _get_properties(ProductPathfinder, "_path"):
+    if prop.startswith("local_label"):
+        continue
+    print(prop)
+    print(getattr(ppf, prop))
+    urlattr = prop.replace("_path", "_url")
+    print(urlattr)
+    url = getattr(ppf, urlattr)
+    print(url)
+
+
abrowse_path
+EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.abrowse.jpg
+abrowse_url
+https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.abrowse.jpg
+browse_path
+EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.browse.jpg
+browse_url
+https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.browse.jpg
+jp2_path
+RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.JP2
+jp2_url
+https://hirise-pds.lpl.arizona.edu/PDS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.JP2
+label_path
+RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.LBL
+label_url
+https://hirise-pds.lpl.arizona.edu/PDS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.LBL
+nomap_browse_path
+EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.browse.jpg
+nomap_browse_url
+https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.browse.jpg
+nomap_jp2_path
+EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.JP2
+nomap_jp2_url
+https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.JP2
+nomap_thumbnail_path
+EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.thumb.jpg
+nomap_thumbnail_url
+https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.thumb.jpg
+quicklook_path
+EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.QLOOK.JP2
+quicklook_url
+https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.QLOOK.JP2
+thumbnail_path
+EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.thumb.jpg
+thumbnail_url
+https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.thumb.jpg
+
+
+
+
ppf.storage_stem
+
+
'ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED'
+
+
+
+
ppf.nomap_browse_url
+
+
URL('https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.browse.jpg')
+
+
+
+
ppf.abrowse_url
+
+
URL('https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.abrowse.jpg')
+
+
+
+
ppf.nomap_jp2_path
+
+
'EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.JP2'
+
+
+
+

source

+
+
+

COLOR_PRODUCT

+
+
 COLOR_PRODUCT (obsid)
+
+

Initialize self. See help(type(self)) for accurate signature.

+
+

source

+
+
+

RGB_NOMAP

+
+
 RGB_NOMAP (obsid)
+
+

Initialize self. See help(type(self)) for accurate signature.

+
+
obsid = "ESP_039983_1390"
+
+
+
rgb = RGB_NOMAP(obsid)
+
+
+
rgb.obsid
+
+
'ESP_039983_1390'
+
+
+
+
rgb.product_id
+
+
'ESP_039983_1390_RGB'
+
+
+
+
rgb.meta.head()
+
+
volume_id                                                         MROHR_0001
+file_name_specification    RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_...
+instrument_host_id                                                       MRO
+instrument_id                                                         HIRISE
+observation_id                                               ESP_039983_1390
+Name: 75508, dtype: object
+
+
+
+
rgb.local_path
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/ESP_039983_1390/ESP_039983_1390_RGB.NOMAP.JP2')
+
+
+
+
rgb.url
+
+
URL('https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RGB.NOMAP.JP2')
+
+
+
+
rgb.download(overwrite=False)
+
+
File exists. Use `overwrite=True` to download fresh.
+
+
+
+
rgb.read()
+
+
+
+ + + + + + + + + + + + + + +
<xarray.DataArray (band: 3, y: 20000, x: 2024)>
+dask.array<open_rasterio-3e88685e58afe3daaabd13b6ff29c609<this-array>, shape=(3, 20000, 2024), dtype=uint16, chunksize=(1, 2024, 2024), chunktype=numpy.ndarray>
+Coordinates:
+  * band         (band) int64 1 2 3
+  * x            (x) float64 0.5 1.5 2.5 3.5 ... 2.022e+03 2.022e+03 2.024e+03
+  * y            (y) float64 0.5 1.5 2.5 3.5 4.5 ... 2e+04 2e+04 2e+04 2e+04
+    spatial_ref  int64 0
+Attributes:
+    scale_factor:  1.0
+    add_offset:    0.0
+
+
+
+
+
rgb.show(xslice=slice(1000, 2000), yslice=slice(16000, 18000))
+
+ +
+
+ +
+
+
+
+
+ +
+
+
+

source

+
+
+

RGB_NOMAPCollection

+
+
 RGB_NOMAPCollection (obsids)
+
+

Class to deal with a set of RGB_NOMAP products.

+
/home/runner/micromamba/envs/my-env/lib/python3.12/site-packages/fastcore/docscrape.py:225: UserWarning: Unknown section Example
+  else: warn(msg)
+
+

source

+
+
+

SOURCE_PRODUCT

+
+
 SOURCE_PRODUCT (spid, saveroot=None, check_url=True)
+
+

Manage SOURCE_PRODUCT id.

+
+
obsid = 'ESP_027021_1525_RED'
+
+
+
for i in range(10):
+    for ch in [0, 1]:
+        spid = f"{obsid}{i}_{ch}"
+        try:
+            SOURCE_PRODUCT(spid).download()
+        except ConnectionError:
+            pass
+
+
File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+File exists. Use `overwrite=True` to download fresh.
+
+
+
/tmp/ipykernel_1172729/2293453911.py:88: UserWarning: https://hirise-pds.lpl.arizona.edu/PDS/EDR/ESP/ORB_027000_027099/ESP_027021_1525/ESP_027021_1525_RED9_0.IMG does not exist on the server.
+  warnings.warn(f"{u} does not exist on the server.")
+/tmp/ipykernel_1172729/2293453911.py:88: UserWarning: https://hirise-pds.lpl.arizona.edu/PDS/EDR/ESP/ORB_027000_027099/ESP_027021_1525/ESP_027021_1525_RED9_1.IMG does not exist on the server.
+  warnings.warn(f"{u} does not exist on the server.")
+
+
+
+
sp = SOURCE_PRODUCT("ESP_027021_1525_RED0_0")
+
+
+
sp.local_path
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/ESP_027021_1525/ESP_027021_1525_RED0_0.IMG')
+
+
+
+
sp.download()
+
+
File exists. Use `overwrite=True` to download fresh.
+
+
+
+
sp.stitched_cube_path
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/ESP_027021_1525/ESP_027021_1525_RED0.cub')
+
+
+
+
sp.url
+
+
URL('https://hirise-pds.lpl.arizona.edu/PDS/EDR/ESP/ORB_027000_027099/ESP_027021_1525/ESP_027021_1525_RED0_0.IMG')
+
+
+
+
sp.remote_path
+
+
Path('EDR/ESP/ORB_027000_027099/ESP_027021_1525/ESP_027021_1525_RED0_0.IMG')
+
+
+
+
sp.local_path
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/ESP_027021_1525/ESP_027021_1525_RED0_0.IMG')
+
+
+
+
sp.channel
+
+
'0'
+
+
+
+
sp.ccd
+
+
'RED0'
+
+
+
+
sp.color
+
+
'RED'
+
+
+
+
sp.ccdno
+
+
'0'
+
+
+
+
sp.spid
+
+
'ESP_027021_1525_RED0_0'
+
+
+
+
sp
+
+
SOURCE_PRODUCT: ESP_027021_1525_RED0_0
+
+
+
+
sp.fname
+
+
'ESP_027021_1525_RED0_0.IMG'
+
+
+
+
sp.local_cube
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/ESP_027021_1525/ESP_027021_1525_RED0_0.cub')
+
+
+
+
sp.stitched_cube_name
+
+
'ESP_027021_1525_RED0.cub'
+
+
+
+
sp.stitched_cube_path.exists()
+
+
True
+
+
+
+

source

+
+
+

RED_PRODUCT

+
+
 RED_PRODUCT (obsid, ccdno, channel, **kwargs)
+
+

This exists to support creating a RED_PRODUCT_ID from parts of a SOURCE_PRODUCT id.

+
+
RED_PRODUCT("ESP_027021_1525", 4, 0).channel
+
+
'0'
+
+
+
+
rpid = RED_PRODUCT("ESP_039983_1390", "4", "0")
+rpid.spid
+
+
'ESP_039983_1390_RED4_0'
+
+
+
+
rpid.fname
+
+
'ESP_039983_1390_RED4_0.IMG'
+
+
+
+
rpid.url
+
+
URL('https://hirise-pds.lpl.arizona.edu/PDS/EDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED4_0.IMG')
+
+
+
+
rpid.download()
+
+
File exists. Use `overwrite=True` to download fresh.
+
+
+
+

source

+
+
+

BG_PRODUCT

+
+
 BG_PRODUCT (obsid, ccdno, channel)
+
+

Manage SOURCE_PRODUCT id.

+
+

source

+
+
+

IR_PRODUCT

+
+
 IR_PRODUCT (obsid, ccdno, channel)
+
+

Manage SOURCE_PRODUCT id.

+
+

source

+
+
+

RedMosaic

+
+
 RedMosaic (obsid)
+
+

Initialize self. See help(type(self)) for accurate signature.

+
+
obsid = "ESP_027021_1525"
+
+
+
red = RedMosaic(obsid)
+
+
+
!ls {red.local_path.parent}
+
+
B01_009958_1524_XI_27S347W.cal.cub   ESP_027021_1525_RED4_1.IMG
+B01_009958_1524_XI_27S347W.lev2.cub  ESP_027021_1525_RED4.cub
+cube2.lis                            ESP_027021_1525_RED4.map.cub
+cube.lis                             ESP_027021_1525_RED4.norm.cub
+ESP_027021_1525_RED0_0.cal.cub       ESP_027021_1525_RED5_0.cal.cub
+ESP_027021_1525_RED0_0.cub           ESP_027021_1525_RED5_0.cub
+ESP_027021_1525_RED0_0.hical.log     ESP_027021_1525_RED5_0.hical.log
+ESP_027021_1525_RED0_0.IMG           ESP_027021_1525_RED5_0.IMG
+ESP_027021_1525_RED0_1.cal.cub       ESP_027021_1525_RED5_1.cal.cub
+ESP_027021_1525_RED0_1.cub           ESP_027021_1525_RED5_1.cub
+ESP_027021_1525_RED0_1.hical.log     ESP_027021_1525_RED5_1.hical.log
+ESP_027021_1525_RED0_1.IMG           ESP_027021_1525_RED5_1.IMG
+ESP_027021_1525_RED0.cub             ESP_027021_1525_RED5.cub
+ESP_027021_1525_RED0.map.cub         ESP_027021_1525_RED5.map.cub
+ESP_027021_1525_RED0.norm.cub        ESP_027021_1525_RED5.map.cub.aux.xml
+ESP_027021_1525_RED1_0.cal.cub       ESP_027021_1525_RED5.norm.cub
+ESP_027021_1525_RED1_0.cub           ESP_027021_1525_RED6_0.cal.cub
+ESP_027021_1525_RED1_0.hical.log     ESP_027021_1525_RED6_0.cub
+ESP_027021_1525_RED1_0.IMG           ESP_027021_1525_RED6_0.hical.log
+ESP_027021_1525_RED1_1.cal.cub       ESP_027021_1525_RED6_0.IMG
+ESP_027021_1525_RED1_1.cub           ESP_027021_1525_RED6_1.cal.cub
+ESP_027021_1525_RED1_1.hical.log     ESP_027021_1525_RED6_1.cub
+ESP_027021_1525_RED1_1.IMG           ESP_027021_1525_RED6_1.hical.log
+ESP_027021_1525_RED1.cub             ESP_027021_1525_RED6_1.IMG
+ESP_027021_1525_RED1.map.cub         ESP_027021_1525_RED6.cub
+ESP_027021_1525_RED1.norm.cub        ESP_027021_1525_RED6.map.cub
+ESP_027021_1525_RED2_0.cal.cub       ESP_027021_1525_RED6.norm.cub
+ESP_027021_1525_RED2_0.cub           ESP_027021_1525_RED7_0.cal.cub
+ESP_027021_1525_RED2_0.hical.log     ESP_027021_1525_RED7_0.cub
+ESP_027021_1525_RED2_0.IMG           ESP_027021_1525_RED7_0.hical.log
+ESP_027021_1525_RED2_1.cal.cub       ESP_027021_1525_RED7_0.IMG
+ESP_027021_1525_RED2_1.cub           ESP_027021_1525_RED7_1.cal.cub
+ESP_027021_1525_RED2_1.hical.log     ESP_027021_1525_RED7_1.cub
+ESP_027021_1525_RED2_1.IMG           ESP_027021_1525_RED7_1.hical.log
+ESP_027021_1525_RED2.cub             ESP_027021_1525_RED7_1.IMG
+ESP_027021_1525_RED2.map.cub         ESP_027021_1525_RED7.cub
+ESP_027021_1525_RED2.norm.cub        ESP_027021_1525_RED7.map.cub
+ESP_027021_1525_RED3_0.cal.cub       ESP_027021_1525_RED7.norm.cub
+ESP_027021_1525_RED3_0.cub           ESP_027021_1525_RED8_0.cal.cub
+ESP_027021_1525_RED3_0.hical.log     ESP_027021_1525_RED8_0.cub
+ESP_027021_1525_RED3_0.IMG           ESP_027021_1525_RED8_0.hical.log
+ESP_027021_1525_RED3_1.cal.cub       ESP_027021_1525_RED8_0.IMG
+ESP_027021_1525_RED3_1.cub           ESP_027021_1525_RED8_1.cal.cub
+ESP_027021_1525_RED3_1.hical.log     ESP_027021_1525_RED8_1.cub
+ESP_027021_1525_RED3_1.IMG           ESP_027021_1525_RED8_1.hical.log
+ESP_027021_1525_RED3.cub             ESP_027021_1525_RED8_1.IMG
+ESP_027021_1525_RED3.map.cub         ESP_027021_1525_RED8.cub
+ESP_027021_1525_RED3.norm.cub        ESP_027021_1525_RED8.map.cub
+ESP_027021_1525_RED4_0.cal.cub       ESP_027021_1525_RED8.norm.cub
+ESP_027021_1525_RED4_0.cub           ESP_027021_1525_RED.LBL
+ESP_027021_1525_RED4_0.hical.log     normalized.lis
+ESP_027021_1525_RED4_0.IMG           point.txt
+ESP_027021_1525_RED4_1.cal.cub       print.prt
+ESP_027021_1525_RED4_1.cub           set_overlaps.txt
+ESP_027021_1525_RED4_1.hical.log
+
+
+ + +
+ +
+ + +
+ + + + + \ No newline at end of file diff --git a/api/pds.apps.html b/api/pds.apps.html new file mode 100644 index 0000000..68d27de --- /dev/null +++ b/api/pds.apps.html @@ -0,0 +1,1851 @@ + + + + + + + + + + +planetarypy - Apps + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Apps

+
+ +
+
+ User interface apps/functions to make using the PDS tools easy. +
+
+ + +
+ + + + +
+ + + +
+ + + +
+

source

+
+

find_indexes

+
+
 find_indexes (instrument:str)
+
+

Find existing indexes for an instrument.

+ + + + + + + + + + + + + + + + + + + + +
TypeDetails
instrumentstrDotted mission.instrument key, e.g. cassini.iss
ReturnslistList of configured index names
+
+
find_indexes("cassini.iss")
+
+
['index', 'inventory', 'moon_summary', 'ring_summary', 'saturn_summary']
+
+
+
+
find_indexes("mro.ctx")
+
+
['edr']
+
+
+
+

source

+
+
+

get_index

+
+
 get_index (instr:str, index_name:str='', refresh:bool=True,
+            force:bool=False)
+
+

Example: get_index(“cassini.iss”, “index”)

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
instrstrDotted instrument index, e.g. cassini.iss
index_namestrIndex name, for exmample ‘moon_summary. Optional’
refreshboolTrueswitch to refresh an index (i.e. download if update available).
Set to False for faster return time to avoid web scraping
forceboolFalseswitch off for faster return time.
ReturnsDataFrameThe PDS index convert to pandas DataFrame
+
+
instr = "cassini.iss"
+index_name = "moon_summary"
+
+
+
index = get_index(instr, index_name, refresh=False)
+
+
+
index
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDFILE_SPECIFICATION_NAMEOPUS_IDTARGET_NAMEMINIMUM_PLANETOCENTRIC_LATITUDEMAXIMUM_PLANETOCENTRIC_LATITUDEMINIMUM_PLANETOGRAPHIC_LATITUDEMAXIMUM_PLANETOGRAPHIC_LATITUDEMINIMUM_IAU_LONGITUDEMAXIMUM_IAU_LONGITUDE...MAXIMUM_EMISSION_ANGLESUB_SOLAR_PLANETOCENTRIC_LATITUDESUB_SOLAR_PLANETOGRAPHIC_LATITUDESUB_OBSERVER_PLANETOCENTRIC_LATITUDESUB_OBSERVER_PLANETOGRAPHIC_LATITUDESUB_SOLAR_IAU_LONGITUDESUB_OBSERVER_IAU_LONGITUDECENTER_RESOLUTIONCENTER_DISTANCECENTER_PHASE_ANGLE
0COISS_2001data/1454725799_1455008789/N1454725799_1.LBLco-iss-n1454725799RHEA-999.0-999.0-999.0-999.0-999.0-999.0...-999.0-25.206-25.442-16.566-16.558183.907252.947423.635670701354.36664.429
1COISS_2001data/1454725799_1455008789/N1454725799_1.LBLco-iss-n1454725799HELENE-999.0-999.0-999.0-999.0-999.0-999.0...-999.0-25.532-50.716-16.532-36.57148.17217.149424.3690270823757.00264.345
2COISS_2001data/1454725799_1455008789/N1454725799_1.LBLco-iss-n1454725799TELESTO-999.0-999.0-999.0-999.0-999.0-999.0...-999.0-26.061-51.51-15.639-21.616189.199257.807424.2874670810144.51964.28
3COISS_2001data/1454725799_1455008789/N1454726579_1.LBLco-iss-n1454726579TITAN-36.111-36.111-36.111-36.1110.0360.0...54.704-25.325-25.325-16.28-16.28340.09247.855428.8967371579395.06663.37
4COISS_2001data/1454725799_1455008789/N1454727359_1.LBLco-iss-n1454727359HYPERION-999.0-999.0-999.0-999.0-999.0-999.0...-999.011.77725.90744.10457.544173.985237.769418.9454569918606.58663.093
..................................................................
385714COISS_2116data/1884017637_1884113741/N1884017911_1.LBLco-iss-n1884017911TITAN-14.35272.101-14.35272.101229.956329.975...89.06926.64426.64423.59923.59932.084299.3894.64069774493.281.887
385715COISS_2116data/1884017637_1884113741/N1884018021_1.LBLco-iss-n1884018021TITAN-14.59771.882-14.59771.882230.932330.255...88.91326.64426.64423.59423.59432.107299.4154.64263774816.73181.888
385716COISS_2116data/1884017637_1884113741/N1884018579_1.LBLco-iss-n1884018579TITAN-14.43572.643-14.43572.643228.942330.644...88.86926.64426.64423.5723.5732.217299.5369.30328776321.46681.889
385717COISS_2116data/1884017637_1884113741/N1884091792_1.LBLco-iss-n1884091792DAPHNIS-999.0-999.0-999.0-999.0-999.0-999.0...-999.026.68439.96625.32138.64294.939124.6414.56619762060.157127.157
385718COISS_2116data/1884017637_1884113741/N1884109343_1.LBLco-iss-n1884109343PANDORA40.38463.74956.97376.9520.0360.0...62.43526.68649.38633.09553.259335.495142.0163.45805577120.582118.858
+ +

385719 rows × 35 columns

+
+
+
+
+

Indexes can be given as 2 parameters (“cassini.iss”, “ring_summary”) or one (“cassini.iss.ring_summary”):

+
+
index = get_index("cassini.iss", "ring_summary", refresh=False)
+index.head()
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDFILE_SPECIFICATION_NAMEOPUS_IDMINIMUM_RIGHT_ASCENSIONMAXIMUM_RIGHT_ASCENSIONMINIMUM_DECLINATIONMAXIMUM_DECLINATIONMINIMUM_RING_RADIUSMAXIMUM_RING_RADIUSFINEST_RING_INTERCEPT_RESOLUTION...RING_CENTER_DISTANCESUB_SOLAR_RING_LONGITUDESUB_OBSERVER_RING_LONGITUDERING_CENTER_PHASE_ANGLERING_CENTER_INCIDENCE_ANGLERING_CENTER_NORTH_BASED_INCIDENCE_ANGLERING_CENTER_EMISSION_ANGLERING_CENTER_NORTH_BASED_EMISSION_ANGLESOLAR_RING_OPENING_ANGLEOBSERVER_RING_OPENING_ANGLE
0COISS_2001data/1454725799_1455008789/N1454725799_1.LBLco-iss-n145472579935.52839835.9055559.71963710.091212205899.3351098621.586419.0137...70874998.947284.523215.95164.0764.589115.41173.676106.324-25.411-16.324
1COISS_2001data/1454725799_1455008789/N1454726579_1.LBLco-iss-n145472657936.66289837.0390389.5901149.960833721136.1551745689.307421.97145...70870851.371284.524215.95164.0764.589115.41173.676106.324-25.411-16.324
2COISS_2001data/1454725799_1455008789/N1454727359_1.LBLco-iss-n145472735936.92806637.3043349.87959310.250111042341.4382186830.92414.79041...70866703.094284.524215.95164.07164.589115.41173.676106.324-25.411-16.324
3COISS_2001data/1454725799_1455008789/N1454728139_1.LBLco-iss-n145472813928.1004228.4796186.2247096.601574-999.0-999.0-999.0...70862557.207284.524215.95164.07164.589115.41173.676106.324-25.411-16.324
4COISS_2001data/1454725799_1455008789/N1454728919_1.LBLco-iss-n145472891937.98141838.35779110.61194710.9816973865717.5893905151.343405.91234...70858406.794284.525215.95164.07164.589115.41173.676106.324-25.411-16.324
+ +

5 rows × 59 columns

+
+
+
+
+
+
index = get_index("cassini.iss.ring_summary", refresh=False)
+index.head()
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDFILE_SPECIFICATION_NAMEOPUS_IDMINIMUM_RIGHT_ASCENSIONMAXIMUM_RIGHT_ASCENSIONMINIMUM_DECLINATIONMAXIMUM_DECLINATIONMINIMUM_RING_RADIUSMAXIMUM_RING_RADIUSFINEST_RING_INTERCEPT_RESOLUTION...RING_CENTER_DISTANCESUB_SOLAR_RING_LONGITUDESUB_OBSERVER_RING_LONGITUDERING_CENTER_PHASE_ANGLERING_CENTER_INCIDENCE_ANGLERING_CENTER_NORTH_BASED_INCIDENCE_ANGLERING_CENTER_EMISSION_ANGLERING_CENTER_NORTH_BASED_EMISSION_ANGLESOLAR_RING_OPENING_ANGLEOBSERVER_RING_OPENING_ANGLE
0COISS_2001data/1454725799_1455008789/N1454725799_1.LBLco-iss-n145472579935.52839835.9055559.71963710.091212205899.3351098621.586419.0137...70874998.947284.523215.95164.0764.589115.41173.676106.324-25.411-16.324
1COISS_2001data/1454725799_1455008789/N1454726579_1.LBLco-iss-n145472657936.66289837.0390389.5901149.960833721136.1551745689.307421.97145...70870851.371284.524215.95164.0764.589115.41173.676106.324-25.411-16.324
2COISS_2001data/1454725799_1455008789/N1454727359_1.LBLco-iss-n145472735936.92806637.3043349.87959310.250111042341.4382186830.92414.79041...70866703.094284.524215.95164.07164.589115.41173.676106.324-25.411-16.324
3COISS_2001data/1454725799_1455008789/N1454728139_1.LBLco-iss-n145472813928.1004228.4796186.2247096.601574-999.0-999.0-999.0...70862557.207284.524215.95164.07164.589115.41173.676106.324-25.411-16.324
4COISS_2001data/1454725799_1455008789/N1454728919_1.LBLco-iss-n145472891937.98141838.35779110.61194710.9816973865717.5893905151.343405.91234...70858406.794284.525215.95164.07164.589115.41173.676106.324-25.411-16.324
+ +

5 rows × 59 columns

+
+
+
+
+
+
get_index("mro.ctx.edr", refresh=False)
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDFILE_SPECIFICATION_NAMEORIGINAL_PRODUCT_IDPRODUCT_IDIMAGE_TIMEINSTRUMENT_IDINSTRUMENT_MODE_IDLINE_SAMPLESLINESSPATIAL_SUMMING...SUB_SOLAR_LATITUDESUB_SPACECRAFT_LONGITUDESUB_SPACECRAFT_LATITUDESOLAR_DISTANCESOLAR_LONGITUDELOCAL_TIMEIMAGE_SKEW_ANGLERATIONALE_DESCDATA_QUALITY_DESCORBIT_NUMBER
0MROX_0001DATA/CRU_000001_9999_XN_99N999W.IMG4A_04_0001000400CRU_000001_9999_XN_99N999W2005-08-30 15:40:21.549CTXNIFL505610241...0.00.00.00.0278.8910.160.0Instrument checkout image of spaceOK-4242
1MROX_0001DATA/CRU_000002_9999_XN_99N999W.IMG4A_04_0001000500CRU_000002_9999_XN_99N999W2005-09-08 15:59:45.313CTXNIFL5056153601...0.00.00.00.0284.484.60.0Calibration image of the MoonOK-4126
2MROX_0001DATA/CRU_000003_9999_XN_99N999W.IMG4A_04_0001000600CRU_000003_9999_XN_99N999W2005-09-08 16:03:37.927CTXNIFL505620481...0.00.00.00.0284.484.660.0Calibration image of Omega Centauri (globular ...OK-4126
3MROX_0001DATA/CRU_000004_9999_XN_99N999W.IMG4A_04_0001000700CRU_000004_9999_XN_99N999W2005-09-08 16:08:23.841CTXNIFL505620481...0.00.00.00.0284.484.740.0Calibration image of Omega Centauri (globular ...OK-4126
4MROX_0001DATA/CRU_000005_9999_XN_99N999W.IMG4A_04_0001000800CRU_000005_9999_XN_99N999W2005-09-08 16:11:18.649CTXNIFL5056215041...0.00.00.00.0284.484.790.0Calibration image of the MoonOK-4126
..................................................................
138410MROX_4461DATA/U14_076622_1804_XN_00N105W.IMG4A_04_118404B100U14_076622_1804_XN_00N105W2022-11-30 17:29:26.742CTXNIFL5056337921...-5.6105.050.45228081883.9346.914.3989.7Terrain northwest of Noctis LabyrinthusOK76622
138411MROX_4461DATA/U14_076622_2009_XI_20N108W.IMG4A_04_118504B200U14_076622_2009_XI_20N108W2022-11-30 17:36:13.062CTXITL505671681...-5.6107.6120.98228082990.5346.914.390.1Candidate impact site formed at most between M...OK76622
138412MROX_4461DATA/U14_076623_1977_XN_17N133W.IMG4A_04_118404B300U14_076623_1977_XN_17N133W2022-11-30 19:26:53.410CTXNIFL5056358401...-5.59134.4517.69228097986.1346.9414.3790.1Ride-along with HiRISEOK76623
138413MROX_4461DATA/U14_076625_1182_XN_61S177W.IMG4A_04_118404B800U14_076625_1182_XN_61S177W2022-11-30 22:46:27.741CTXNIFL5056522241...-5.56177.43-61.87228126022.3347.0114.7190.4Southern highlandsOK76625
138414MROX_4461DATA/U14_076625_1714_XN_08S185W.IMG4A_04_118404B900U14_076625_1714_XN_08S185W2022-11-30 23:02:50.690CTXNIFL5056522241...-5.55185.83-8.75228127015.7347.0214.4590.5Ride-along with HiRISEOK76625
+ +

138415 rows × 51 columns

+
+
+
+
+
+

source

+
+
+

find_instruments

+
+
 find_instruments (mission:str)
+
+

Find existing instruments for a mission.

+ + + + + + + + + + + + + + + + + + + + +
TypeDetails
missionstrMission string, e.g. “cassini”
ReturnslistList of configured instrument names
+
+
find_instruments("cassini")
+
+
['iss', 'uvis']
+
+
+
+
find_instruments("mro")
+
+
['hirise', 'ctx']
+
+
+
+
from nbdev import nbdev_export
+nbdev_export()
+
+ + +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/api/pds.crism_index.html b/api/pds.crism_index.html new file mode 100644 index 0000000..d4ef86d --- /dev/null +++ b/api/pds.crism_index.html @@ -0,0 +1,1103 @@ + + + + + + + + + + +planetarypy - CRISM PDS Index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

CRISM PDS Index

+
+ +
+
+ Tools to work with the CRISM PDS index files +
+
+ + +
+ + + + +
+ + + +
+ + + +
+
url = URL("https://pds-geosciences.wustl.edu/mro/mro-m-crism-5-rdr-mptargeted-v1/mrocr_4001/index/mtrdr0705_index.lbl")
+
+
+

source

+
+

MTRDRIndex

+
+
 MTRDRIndex (url)
+
+

Index manager class.

+

This class manages one index, identified by a dotted key, e.g. cassini.iss.ring_summary

+
+
index = MTRDRIndex(url=url)
+
+
+
index.download()
+
+ +
+
+ +
+
+
Downloaded /home/ayek72/mnt/slowdata/planetarypy/missions/mro/crism/indexes/mtrdr/mtrdr0705_index.lbl and /home/ayek72/mnt/slowdata/planetarypy/missions/mro/crism/indexes/mtrdr/mtrdr0705_index.tab
+Done.
+
+
+
+
index.convert_to_parquet()
+
+
Done.
+
+
+
+
index.parquet
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDPRODUCT_IDPRODUCT_TYPEFILE_SPECIFICATION_NAMEPARTICIPATING_INSTRUMENTSPRODUCT_CREATION_TIMESTART_TIMESTOP_TIMESPACECRAFT_CLOCK_START_COUNTSPACECRAFT_CLOCK_STOP_COUNT...WESTERNMOST_LONGITUDEEASTERNMOST_LONGITUDELOWER_RIGHT_LATITUDELOWER_RIGHT_LONGITUDELOWER_LEFT_LATITUDELOWER_LEFT_LONGITUDEUPPER_RIGHT_LATITUDEUPPER_RIGHT_LONGITUDEUPPER_LEFT_LATITUDEUPPER_LEFT_LONGITUDE
0MROCR_4001FRT00005F0C_07_IF163J_MTR3MPTARGETED_RDRMTRDR/2007/2007_148/FRT00005F0C/FRT00005F0C_07...<NA>2015-06-12 09:00:202007-05-28 17:30:38.6052007-05-28 17:32:22.3392/0864840658.002252/0864840761.48344...52.853.267-99.999-999.999-99.999-999.999-99.999-999.999-99.999-999.999
1MROCR_4001FRT00005F0C_07_WV163J_MTR3MPTARGETED_RDRMTRDR/2007/2007_148/FRT00005F0C/FRT00005F0C_07...<NA>2015-06-12 09:00:202007-05-28 17:30:38.6052007-05-28 17:32:22.3392/0864840658.002252/0864840761.48344...-999.999-999.999-99.999-999.999-99.999-999.999-99.999-999.999-99.999-999.999
2MROCR_4001FRT00005F0C_07_IN163J_MTR3MPTARGETED_RDRMTRDR/2007/2007_148/FRT00005F0C/FRT00005F0C_07...<NA>2015-06-12 09:04:092007-05-28 17:30:38.6052007-05-28 17:32:22.3392/0864840658.002252/0864840761.48344...52.853.267-99.999-999.999-99.999-999.999-99.999-999.999-99.999-999.999
3MROCR_4001FRT00005F0C_07_DE163L_MTR1MAP_PROJECTED_DDRMTRDR/2007/2007_148/FRT00005F0C/FRT00005F0C_07...<NA>2015-06-12 09:04:032007-05-28 17:30:38.6052007-05-28 17:32:22.3392/864840658:2252/864840761:48344...52.853.267-62.7153.27-62.7652.84-62.5953.23-62.652.8
4MROCR_4001FRT00005F0C_07_SU163J_MTR3MPTARGETED_RDRMTRDR/2007/2007_148/FRT00005F0C/FRT00005F0C_07...<NA>2015-06-12 09:00:292007-05-28 17:30:38.6052007-05-28 17:32:22.3392/0864840658.002252/0864840761.48344...52.853.267-99.999-999.999-99.999-999.999-99.999-999.999-99.999-999.999
..................................................................
553MROCR_4001FRT00005DAC_07_IF165J_MTR3MPTARGETED_RDRMTRDR/2007/2007_144/FRT00005DAC/FRT00005DAC_07...<NA>2015-06-12 07:20:092007-05-24 07:16:57.9262007-05-24 07:18:57.6602/0864458237.210462/0864458357.03629...156.527156.771-99.999-999.999-99.999-999.999-99.999-999.999-99.999-999.999
554MROCR_4001FRT00005DAC_07_DE165L_MTR1MAP_PROJECTED_DDRMTRDR/2007/2007_144/FRT00005DAC/FRT00005DAC_07...<NA>2015-06-12 07:22:512007-05-24 07:16:57.9262007-05-24 07:18:57.6602/864458237:210462/864458357:3629...156.527156.7719.67156.779.66156.549.88156.759.84156.53
555MROCR_4001FRT00005DAC_07_WV165J_MTR3MPTARGETED_RDRMTRDR/2007/2007_144/FRT00005DAC/FRT00005DAC_07...<NA>2015-06-12 07:20:092007-05-24 07:16:57.9262007-05-24 07:18:57.6602/0864458237.210462/0864458357.03629...-999.999-999.999-99.999-999.999-99.999-999.999-99.999-999.999-99.999-999.999
556MROCR_4001FRT00005DAC_07_IN165J_MTR3MPTARGETED_RDRMTRDR/2007/2007_144/FRT00005DAC/FRT00005DAC_07...<NA>2015-06-12 07:22:562007-05-24 07:16:57.9262007-05-24 07:18:57.6602/0864458237.210462/0864458357.03629...156.527156.771-99.999-999.999-99.999-999.999-99.999-999.999-99.999-999.999
557MROCR_4001FRT00005DAC_07_SU165J_MTR3MPTARGETED_RDRMTRDR/2007/2007_144/FRT00005DAC/FRT00005DAC_07...<NA>2015-06-12 07:20:172007-05-24 07:16:57.9262007-05-24 07:18:57.6602/0864458237.210462/0864458357.03629...156.527156.771-99.999-999.999-99.999-999.999-99.999-999.999-99.999-999.999
+ +

558 rows × 57 columns

+
+
+
+
+ + +
+ +
+ + +
+ + + + + \ No newline at end of file diff --git a/api/pds.ctx_index.html b/api/pds.ctx_index.html new file mode 100644 index 0000000..3072e6e --- /dev/null +++ b/api/pds.ctx_index.html @@ -0,0 +1,862 @@ + + + + + + + + + + +planetarypy - CTX Index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

CTX Index

+
+ +
+
+ Scraping the latest CTX index file from the latest added volume. +
+
+ + +
+ + + + +
+ + + +
+ + + +
+

source

+
+

CTXIndex

+
+
 CTXIndex ()
+
+

Initialize self. See help(type(self)) for accurate signature.

+
+
ctx = CTXIndex()
+
+
+
ctx.volumes_table
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLast modified
2mrox_0001/05-Jun-2007 10:15
3mrox_0001_md5.txt10-Dec-2019 04:32
4mrox_0002/05-Jun-2007 10:15
5mrox_0002_md5.txt09-Dec-2019 19:14
6mrox_0003/05-Jun-2007 10:15
.........
9515mrox_4757_md5.txt15-Nov-2023 23:23
9516mrox_4758/15-Nov-2023 23:08
9517mrox_4758_md5.txt15-Nov-2023 23:23
9518mrox_4759/15-Nov-2023 23:10
9519mrox_4759_md5.txt15-Nov-2023 23:23
+ +

9518 rows × 2 columns

+
+
+
+
+
+
ctx.latest_release_folder
+
+
'mrox_4759/'
+
+
+
+
ctx.latest_release_number
+
+
'4759'
+
+
+
+
ctx.latest_index_label_url
+
+
URL('https://planetarydata.jpl.nasa.gov/img/data/mro/mars_reconnaissance_orbiter/ctx/mrox_4759/index/cumindex.lbl')
+
+
+ + +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/api/pds.indexes.html b/api/pds.indexes.html new file mode 100644 index 0000000..dd783bc --- /dev/null +++ b/api/pds.indexes.html @@ -0,0 +1,958 @@ + + + + + + + + + + +planetarypy - PDS Indexes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

PDS Indexes

+
+ +
+
+ Support tools to work with PDS index files. +
+
+ + +
+ + + + +
+ + + +
+ + + +
+

source

+
+

Index

+
+
 Index (key:str, url:str=None, check_update:bool=True)
+
+

Index manager class.

+

This class manages one index, identified by a dotted key, e.g. cassini.iss.ring_summary

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
keystrNested (dotted) key, e.g. cassini.iss.ring_summary
urlstrNoneURL to index. If not given, will be read from config object.
check_updateboolTrueswitch if dynamic URLS will be derived upon start
+
+

source

+
+
+

Index.parse_key

+
+
 Index.parse_key (key:str)
+
+

Take care of different ways how the key could be structured.

+

This involves adding the sub-key indexes for the config file structure, which is something the user of this class should not need to know.

+ + + + + + + + + + + + + + + +
TypeDetails
keystrdotted key
+
+

source

+
+
+

Index.download

+
+
 Index.download ()
+
+

Wrapping URLs for downloading PDS indices and their label files.

+
+

source

+
+
+

Index.update_available

+
+
 Index.update_available ()
+
+

Property indicating if the index needs to be downloaded.

+
+
key = "missions.cassini.iss.indexes.moon_summary"
+key = "missions.lro.lroc.edr"
+
+
+
index = Index(key, check_update=True)
+index
+
+
Key: missions.lro.lroc.indexes.edr
+URL: http://pds.lroc.asu.edu/data/LRO-L-LROC-2-EDR-V1.0/LROLRC_0048C/INDEX/CUMINDEX.LBL
+Timestamp: 2023-10-10 15:30:56.195462
+
+
+
+
index.key
+
+
'missions.lro.lroc.indexes.edr'
+
+
+
+
index.label_filename
+
+
Path('CUMINDEX.LBL')
+
+
+
+
index.url
+
+
'http://pds.lroc.asu.edu/data/LRO-L-LROC-2-EDR-V1.0/LROLRC_0048C/INDEX/CUMINDEX.LBL'
+
+
+
+
index.local_dir
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/lro/lroc/indexes/edr')
+
+
+
+
if index.check_update and index.update_available:
+    index.download()
+
+

The key can be provided * with or without the leading ‘missions’ * with or without the internal indexes level of the config file

+
+
Index("cassini.iss.moon_summary")
+
+
Key: missions.cassini.iss.indexes.moon_summary
+URL: https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_moon_summary.lbl
+Timestamp: 2019-06-08 16:28:22
+
+
+
+
Index("cassini.iss.indexes.moon_summary")
+
+
Key: missions.cassini.iss.indexes.moon_summary
+URL: https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_moon_summary.lbl
+Timestamp: 2019-06-08 16:28:22
+
+
+
+
index.isotimestamp
+
+
'2023-10-10T15:30:56.195462'
+
+
+
+
index.mission_key
+
+
'lro'
+
+
+
+
index.local_dir
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/lro/lroc/indexes/edr')
+
+
+
+
index.key_tokens[:2]
+
+
['missions', 'lro']
+
+
+
+
index.instrument_key
+
+
'lro.lroc'
+
+
+
+
config.get_value(index.instrument_key)
+
+
{'indexes': {'edr': {'url': 'http://pds.lroc.asu.edu/data/LRO-L-LROC-2-EDR-V1.0/LROLRC_0048C/INDEX/CUMINDEX.LBL', 'timestamp': '2023-10-10T15:30:56.195462'}}}
+
+
+
+
index = Index('mro.ctx.edr', check_update=False)
+
+
+
index.url
+
+
''
+
+
+
+
index.label_filename
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/ctx/indexes/edr/cumindex.lbl')
+
+
+
+
list(index.local_dir.glob("*.[lL][bB][lL]"))
+
+
[Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/ctx/indexes/edr/cumindex.lbl')]
+
+
+ + +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/api/pds.lroc_index.html b/api/pds.lroc_index.html new file mode 100644 index 0000000..1fedf62 --- /dev/null +++ b/api/pds.lroc_index.html @@ -0,0 +1,787 @@ + + + + + + + + + + +planetarypy - LROC Index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

LROC Index

+
+ +
+
+ LROC Index is not at a fixed URL, so need to determine dynamically. +
+
+ + +
+ + + + +
+ + + +
+ + + +
+

EDR vs RDR etc.

+

I cannot distinguish between different data levels for dynamic index URLs yet, as is required for LROC, so for now I only implement the EDR index, pretending it’s the only one!

+
+

source

+
+

LROCIndex

+
+
 LROCIndex ()
+
+

Initialize self. See help(type(self)) for accurate signature.

+
+
lroc = LROCIndex()
+
+
+
lroc.latest_release_folder
+
+
'LROLRC_0056A/'
+
+
+
+
lroc.latest_release_number
+
+
'0056A'
+
+
+
+
lroc.latest_index_label_url
+
+
URL('https://pds.lroc.asu.edu/data/LRO-L-LROC-2-EDR-V1.0/LROLRC_0056A/INDEX/CUMINDEX.LBL')
+
+
+ + +
+
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/api/pds.opusapi.html b/api/pds.opusapi.html new file mode 100644 index 0000000..3cdff7f --- /dev/null +++ b/api/pds.opusapi.html @@ -0,0 +1,785 @@ + + + + + + + + + + +planetarypy - OPUSAPI class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

OPUSAPI class

+
+ +
+
+ A simple wrapper to get data from the Rings-Moons Systems PDS node +
+
+ + +
+ + + + +
+ + + +
+ + + +
+

source

+
+

OPUS

+
+
 OPUS (silent=False)
+
+

Manage OPUS API requests.

+
+

source

+
+
+

OPUSObsID

+
+
 OPUSObsID (obsid_data)
+
+

Manage observation IDs from OPUS responses.

+
+

source

+
+
+

OPUSImageURL

+
+
 OPUSImageURL (jsonlist)
+
+

Manage URLS from the OPUS response.

+
+
opus = OPUS()
+
+
+
opus.query_image_id("FUV2003_363_00_22")
+
+ + +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/api/pds.utils.html b/api/pds.utils.html new file mode 100644 index 0000000..9ffa700 --- /dev/null +++ b/api/pds.utils.html @@ -0,0 +1,920 @@ + + + + + + + + + + +planetarypy - PDS Utils + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

PDS Utils

+
+ +
+
+ Utilities used by the pds sub-package. +
+
+ + +
+ + + + +
+ + + +
+ + + +
+

source

+
+

IndexLabel

+
+
 IndexLabel (labelpath:Union[str,pathlib.Path])
+
+

Support working with label files of PDS Index tables.

+ +++++ + + + + + + + + + + + + + + +
TypeDetails
labelpathUnionPath to the labelfile for a PDS Indexfile.
The actual table should reside in the same folder to be automatically parsed
when calling the read_index_data method.
+
+

source

+
+
+

index_to_df

+
+
 index_to_df (indexpath:Union[str,pathlib.Path],
+              label:__main__.IndexLabel, convert_times=True)
+
+

The main reader function for PDS Indexfiles.

+

In conjunction with an IndexLabel object that figures out the column widths, this reader should work for all PDS TAB files.

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
indexpathUnionPath to the index TAB file
labelIndexLabelLabel object that has both the column names and the columns widths as attributes
‘colnames’ and ‘colspecs’
convert_timesboolTrueSwitch to control if to convert columns with “TIME” in name (unless COUNT is as well in name) to datetime
+
+

source

+
+
+

PVLColumn

+
+
 PVLColumn (pvlobj)
+
+

Manages just one of the columns in a table that is described via PVL.

+
+

source

+
+
+

decode_line

+
+
 decode_line (linedata:str, labelpath:Union[str,pathlib.Path])
+
+

Decode one line of tabbed data with the appropriate label file.

+ +++++ + + + + + + + + + + + + + + + + + + + +
TypeDetails
linedatastrOne line of a .tab data file
labelpathUnionPath to the appropriate label that describes the data.
+
+

source

+
+
+

find_mixed_type_cols

+
+
 find_mixed_type_cols (df:pandas.core.frame.DataFrame, fix:bool=True)
+
+

For a given dataframe, find the columns that are of mixed type.

+

Tool to help with the performance warning when trying to save a pandas DataFrame as a HDF. When a column changes datatype somewhere, pickling occurs, slowing down the reading process of the HDF file.

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
dfDataFrameDataframe to be searched for mixed data-types
fixboolTrueSwitch to control if NaN values in these problem columns should be replaced by the string ‘UNKNOWN’
ReturnslistList of column names that have data type changes within themselves.
+
+

source

+
+
+

fix_hirise_edrcumindex

+
+
 fix_hirise_edrcumindex (infname:Union[str,pathlib.Path],
+                         outfname:Union[str,pathlib.Path])
+
+

Fix HiRISE EDRCUMINDEX.

+

The HiRISE EDRCUMINDEX has some broken lines where the SCAN_EXPOSURE_DURATION is of format F10.4 instead of the defined F9.4. This function simply replaces those incidences with one less decimal fraction, so 20000.0000 becomes 20000.000.

+ + + + + + + + + + + + + + + + + + + + +
TypeDetails
infnameUnionPath to broken EDRCUMINDEX.TAB
outfnameUnionPath where to store the fixed TAB file
+ + +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/api/spice.kernels.html b/api/spice.kernels.html new file mode 100644 index 0000000..c233958 --- /dev/null +++ b/api/spice.kernels.html @@ -0,0 +1,2160 @@ + + + + + + + + + + +planetarypy - SPICE Kernels + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

SPICE Kernels

+
+ +
+
+ Tools to manage SPICE kernels +
+
+ + +
+ + + + +
+ + + +
+ + + +
+

Intro

+

Feature list for this module:

+
    +
  • Receive the list of supported datasets for automatic retrieval of archived SPICE kernels +
      +
    • The supported datasets are tabled here at NAIF: https://naif.jpl.nasa.gov/naif/data_archived.html
    • +
  • +
  • Receive the list of required SPICE kernels for a given mission and time range
  • +
  • Automatic download of kernels for a given mission and time range either into a given location or the planetarypy local archive.
  • +
+

As always in planetarypy the general design philosophy is to first develop a management class to give the user full control over all the details, and then add easy-to-use function for the end-user that do the most frequently used things in one go. (See section “User Functions”)

+
+
+

Identifying and downloading kernel sets

+

One repeating task for SPICE calculations is the identification and retrieval of all SPICE kernels for a mission for a given time interval.

+

The folks at NAIF offer a “Subset” feature at their servers. Here we set up a table of the currently supported datasets:

+
+
datasets
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
pathMission NamePDS3 or PDS4Data Size (GB)Start TimeStop Time
shorthand
bcbc/bc_spiceBepiColombo41.12018-10-202023-01-01
cassinico-s_j_e_v-spice-6-v1.0/cosp_1000Cassini Orbiter362.51997-10-152017-09-15
clementineclem1-l-spice-6-v1.0/clsp_1000Clementine30.81994-01-261994-05-07
dartdart/dart_spiceDART49.12021-11-092050-01-01
dawndawn-m_a-spice-6-v1.0/dawnsp_1000DAWN386.42007-09-272018-10-31
didi-c-spice-6-v1.0/disp_1000Deep Impact30.72005-01-122005-08-09
ds1ds1-a_c-spice-6-v1.0/ds1sp_1000Deep Space 130.91998-10-242001-12-18
epoxidif-c_e_x-spice-6-v1.0/epxsp_1000EPOXI31.02005-08-232011-03-01
em16em16/em16_spiceExoMars TGO 201649.42016-03-142023-01-01
grailgrail-l-spice-6-v1.0/grlsp_1000GRAIL34.32011-09-102012-12-17
hayabusahay-a-spice-6-v1.0/haysp_1000Hayabusa30.32005-09-112005-11-19
insightinsight/insight_spiceInSight40.92018-05-052022-12-15
junojno-j_e_ss-spice-6-v1.0/jnosp_1000JUNO346.92011-08-052022-08-17
ladeeladee/ladee_spiceLADEE40.62013-09-072050-01-01
lrolro-l-spice-6-v1.0/lrosp_1000Lunar Reconnaissance Orbiter3595.72009-06-182023-03-15
mavenmaven/maven_spiceMAVEN454.42013-11-182023-04-01
opportunitymer1-m-spice-6-v1.0/mer1sp_1000MER 1 (Opportunity)34.12003-07-072018-06-10
spiritmer2-m-spice-6-v1.0/mer2sp_1000MER 2 (Spirit)32.62003-06-102010-05-03
messengermess-e_v_h-spice-6-v1.0/messsp_1000MESSENGER344.82004-08-032015-04-30
mars2020mars2020/mars2020_spiceMars 202040.62020-07-302022-12-28
mexmex-e_m-spice-6-v2.0/mexsp_2000Mars Express38.52003-06-022022-11-30
mgsmgs-m-spice-6-v1.0/mgsp_1000Mars Global Surveyor315.41996-11-062006-11-02
odyody-m-spice-6-v1.0/odsp_1000Mars Odyssey333.22001-04-072022-10-01
mromro-m-spice-6-v1.0/mrosp_1000Mars Reconnaissance Orbiter3314.92005-08-122023-04-01
mslmsl-m-spice-6-v1.0/mslsp_1000Mars Science Laboratory30.62011-11-262022-11-06
nearnear-a-spice-6-v1.0/nearsp_1000NEAR32.41996-05-302001-02-28
nhnh-j_p_ss-spice-6-v1.0/nhsp_1000New Horizons31.62006-01-192019-12-30
orexorex/orex_spiceOSIRIS-REx4418.42016-09-082021-02-22
rosettaro_rl-e_m_a_c-spice-6-v1.0/rossp_1000Rosetta35.92004-03-022017-01-01
stardustsdu-c-spice-6-v1.0/sdsp_1000Stardust31.91999-02-072011-05-01
venus_climate_orbitervco/vco_spiceVenus Climate Orbiter41.72010-05-212022-01-01
vexvex-e_v-spice-6-v2.0/vexsp_2000Venus Express35.02005-11-092015-02-06
vovo1_vo2-m-spice-6-v1.0/vosp_1000Viking Orbiter30.11976-06-161980-07-30
+ +
+
+
+
+

To receive this dataframe:

+
from planetarypy.spice.kernels import datasets
+

Some validation helpers:

+
+

source

+
+

is_stop_valid

+
+
 is_stop_valid (mission:str, stop:astropy.time.core.Time)
+
+ + + + + + + + + + + + + + + + + + + + +
TypeDetails
missionstrmission shorthand label of datasets dataframe
stopTimestop time in astropy.Time format
+
+

source

+
+
+

is_start_valid

+
+
 is_start_valid (mission:str, start:astropy.time.core.Time)
+
+ + + + + + + + + + + + + + + + + + + + +
TypeDetails
missionstrmission shorthand label of datasets dataframe
startTimestart time in astropy.Time format
+
+
assert is_start_valid("cassini", Time("1998-01-01")) is True
+assert is_start_valid("cassini", Time("1997-01-01")) is False
+assert is_stop_valid("cassini", "2017-01-01") is True
+assert is_stop_valid("cassini", "2018-01-01") is False
+
+

Now we build a management class for wrapping the Perl script available at below’s URL for accessing subsets of these datasets.

+

First, the basic URLs we will use:

+

The Perl script subsetds.pl (the name at the end of the BASE_URL) requires as input:

+
    +
  • the dataset name
  • +
  • start and stop of the time interval
  • +
  • a constant named “Subset” to identify the action for this Perl script
  • +
+

We can assemble these parameters into a payload dictionary for the requests.get call and we manage different potential actions on the zipfile with a Subsetter class, that only requires the mission identifier, start and stop as parameters.

+
/home/runner/micromamba/envs/my-env/lib/python3.12/site-packages/fastcore/docscrape.py:225: UserWarning: Unknown section Attributes
+  else: warn(msg)
+
+

source

+
+
+

Subsetter

+
+
 Subsetter (mission:str, start:str, stop=None, save_location=None)
+
+

Class to manage retrieving subset SPICE kernel lists

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
missionstrmission shorthand in datasets dataframe
startstrstart time in either ISO or yyyy-jjj format
stopNoneTypeNonestop time in either ISO or yyyy-jjj format
save_locationNoneTypeNoneoverwrite default storing in planetarpy archive
+
+

source

+
+
+

download_one_url

+
+
 download_one_url (url, local_path, overwrite:bool=False)
+
+
+
subset = Subsetter("cassini", "2014-270")
+
+
+
subset.kernel_names
+
+
['ck/14001_15001pa_gapfill_v14.bc',
+ 'ck/14212_14279py_as_flown.bc',
+ 'ck/14268_14273ra.bc',
+ 'ck/cas_cda_20150318.bc',
+ 'ck/cas_lemms_05109_20001_v2.bc',
+ 'fk/cas_dyn_v03.tf',
+ 'fk/cas_mimi_v202.tf',
+ 'fk/cas_rocks_v18.tf',
+ 'fk/cas_v41.tf',
+ 'ik/cas_caps_v03.ti',
+ 'ik/cas_cda_v01.ti',
+ 'ik/cas_cirs_v09.ti',
+ 'ik/cas_inms_v02.ti',
+ 'ik/cas_iss_v10.ti',
+ 'ik/cas_mag_v01.ti',
+ 'ik/cas_mimi_v11.ti',
+ 'ik/cas_radar_v11.ti',
+ 'ik/cas_rpws_v01.ti',
+ 'ik/cas_rss_v03.ti',
+ 'ik/cas_sru_v02.ti',
+ 'ik/cas_uvis_v06.ti',
+ 'ik/cas_vims_v06.ti',
+ 'lsk/naif0012.tls',
+ 'pck/pck00010.tpc',
+ 'sclk/cas00172.tsc',
+ 'spk/140809BP_IRRE_00256_25017.bsp',
+ 'spk/150122R_SCPSE_14251_14283.bsp',
+ 'spk/180927AP_RE_90165_18018.bsp']
+
+
+
+
# this should fail:
+def _failing():
+    Subsetter("cassini", "2019-01-01")
+
+
+test_fail(_failing, contains="start/stop")
+
+
+
subset = Subsetter("cassini", "2011-02-13", "2011-02-14")
+
+
+
subset.urls_file
+
+
'urls_cosp_1000_110213_110214.txt'
+
+
+
+
subset.metakernel_file
+
+
'cas_2011_v17_110213_110214.tm'
+
+
+
+

source

+
+
+

Subsetter.kernel_names

+
+
 Subsetter.kernel_names ()
+
+

Return list of names of kernels for the given time range.

+
+
subset.kernel_names
+
+
['ck/11001_12001pa_gapfill_v14.bc',
+ 'ck/11017_11066py_as_flown.bc',
+ 'ck/11044_11049ra.bc',
+ 'ck/cas_cda_20120517.bc',
+ 'ck/cas_lemms_05109_20001_v2.bc',
+ 'fk/cas_dyn_v03.tf',
+ 'fk/cas_mimi_v202.tf',
+ 'fk/cas_rocks_v18.tf',
+ 'fk/cas_v41.tf',
+ 'ik/cas_caps_v03.ti',
+ 'ik/cas_cda_v01.ti',
+ 'ik/cas_cirs_v09.ti',
+ 'ik/cas_inms_v02.ti',
+ 'ik/cas_iss_v10.ti',
+ 'ik/cas_mag_v01.ti',
+ 'ik/cas_mimi_v11.ti',
+ 'ik/cas_radar_v11.ti',
+ 'ik/cas_rpws_v01.ti',
+ 'ik/cas_rss_v03.ti',
+ 'ik/cas_sru_v02.ti',
+ 'ik/cas_uvis_v06.ti',
+ 'ik/cas_vims_v06.ti',
+ 'lsk/naif0012.tls',
+ 'pck/pck00010.tpc',
+ 'sclk/cas00172.tsc',
+ 'spk/110504R_SCPSE_11041_11093.bsp',
+ 'spk/140809BP_IRRE_00256_25017.bsp',
+ 'spk/180927AP_RE_90165_18018.bsp']
+
+
+
+
subset.kernel_urls
+
+
['https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ck/11001_12001pa_gapfill_v14.bc',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ck/11017_11066py_as_flown.bc',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ck/11044_11049ra.bc',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ck/cas_cda_20120517.bc',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ck/cas_lemms_05109_20001_v2.bc',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/fk/cas_dyn_v03.tf',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/fk/cas_mimi_v202.tf',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/fk/cas_rocks_v18.tf',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/fk/cas_v41.tf',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_caps_v03.ti',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_cda_v01.ti',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_cirs_v09.ti',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_inms_v02.ti',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_iss_v10.ti',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_mag_v01.ti',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_mimi_v11.ti',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_radar_v11.ti',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_rpws_v01.ti',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_rss_v03.ti',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_sru_v02.ti',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_uvis_v06.ti',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_vims_v06.ti',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/lsk/naif0012.tls',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/pck/pck00010.tpc',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/sclk/cas00172.tsc',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/spk/110504R_SCPSE_11041_11093.bsp',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/spk/140809BP_IRRE_00256_25017.bsp',
+ 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/spk/180927AP_RE_90165_18018.bsp']
+
+
+
+

source

+
+
+

Subsetter.get_local_path

+
+
 Subsetter.get_local_path (url)
+
+

Calculate local storage path from Kernel URL, using save_location if given.

+

If self.save_location is None, the planetarypy archive is being used.

+ +++++ + + + + + + + + + + + + + + + + + + + +
TypeDetails
urlkernel url to determine local storage path
ReturnsPathfull local path where kernel in URL will be stored
+
+
subset.get_local_path(subset.kernel_urls[0])
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/spice_kernels/cassini/ck/11001_12001pa_gapfill_v14.bc')
+
+
+
+
subset.save_location = Path(".")
+
+
+
subset.get_local_path(subset.kernel_urls[0])
+
+
Path('ck/11001_12001pa_gapfill_v14.bc')
+
+
+
+

source

+
+
+

Subsetter.download_kernels

+
+
 Subsetter.download_kernels (overwrite:bool=False,
+                             non_blocking:bool=False, quiet:bool=False)
+
+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
overwriteboolFalseswitch to control if kernels should be downloaded over existing ones
non_blockingboolFalse
quietboolFalse
+
+
# reset save_location to prevent additional download
+subset.save_location = None
+
+
+
subset.download_kernels()
+
+ +
+
+
ck 11001_12001pa_gapfill_v14.bc locally available.
+ck 11017_11066py_as_flown.bc locally available.
+ck 11044_11049ra.bc locally available.
+ck cas_cda_20120517.bc locally available.
+ck cas_lemms_05109_20001_v2.bc locally available.
+fk cas_dyn_v03.tf locally available.
+fk cas_mimi_v202.tf locally available.
+fk cas_rocks_v18.tf locally available.
+fk cas_v41.tf locally available.
+ik cas_caps_v03.ti locally available.
+ik cas_cda_v01.ti locally available.
+ik cas_cirs_v09.ti locally available.
+ik cas_inms_v02.ti locally available.
+ik cas_iss_v10.ti locally available.
+ik cas_mag_v01.ti locally available.
+ik cas_mimi_v11.ti locally available.
+ik cas_radar_v11.ti locally available.
+ik cas_rpws_v01.ti locally available.
+ik cas_rss_v03.ti locally available.
+ik cas_sru_v02.ti locally available.
+ik cas_uvis_v06.ti locally available.
+ik cas_vims_v06.ti locally available.
+lsk naif0012.tls locally available.
+pck pck00010.tpc locally available.
+sclk cas00172.tsc locally available.
+spk 110504R_SCPSE_11041_11093.bsp locally available.
+spk 140809BP_IRRE_00256_25017.bsp locally available.
+spk 180927AP_RE_90165_18018.bsp locally available.
+
+
+
+
subset.download_kernels(non_blocking=True)
+
+ +
+
+
ck 11001_12001pa_gapfill_v14.bc locally available.
+ck 11017_11066py_as_flown.bc locally available.
+ck 11044_11049ra.bc locally available.
+ck cas_cda_20120517.bc locally available.
+ck cas_lemms_05109_20001_v2.bc locally available.
+fk cas_dyn_v03.tf locally available.
+fk cas_mimi_v202.tf locally available.
+fk cas_rocks_v18.tf locally available.
+fk cas_v41.tf locally available.
+ik cas_caps_v03.ti locally available.
+ik cas_cda_v01.ti locally available.
+ik cas_cirs_v09.ti locally available.
+ik cas_inms_v02.ti locally available.
+ik cas_iss_v10.ti locally available.
+ik cas_mag_v01.ti locally available.
+ik cas_mimi_v11.ti locally available.
+ik cas_radar_v11.ti locally available.
+ik cas_rpws_v01.ti locally available.
+ik cas_rss_v03.ti locally available.
+ik cas_sru_v02.ti locally available.
+ik cas_uvis_v06.ti locally available.
+ik cas_vims_v06.ti locally available.
+lsk naif0012.tls locally available.
+pck pck00010.tpc locally available.
+sclk cas00172.tsc locally available.
+spk 110504R_SCPSE_11041_11093.bsp locally available.
+spk 140809BP_IRRE_00256_25017.bsp locally available.
+spk 180927AP_RE_90165_18018.bsp locally available.
+
+
+
[]
+
+
+
+

source

+
+
+

Subsetter.get_metakernel

+
+
 Subsetter.get_metakernel ()
+
+

Get metakernel file from NAIF and adapt path to match local storage.

+

Use save_location if given, otherwise planetarypy archive.

+
+
mkpath = subset.get_metakernel()
+mkpath
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/spice_kernels/cassini/cas_2011_v17_110213_110214.tm')
+
+
+
+
!cat {mkpath}
+
+
KPL/MK
+
+   This meta-kernel lists a subset of kernels from the meta-kernel
+   cas_2011_v17.tm provided in the CO-S/J/E/V-SPICE-6-V1.0 SPICE PDS3 archive,
+   covering the whole or a part of the customer requested time period
+   from 2011-02-13T00:00:00.000 to 2011-02-14T00:00:00.000.
+
+   The documentation describing these kernels can be found in the
+   complete CO-S/J/E/V-SPICE-6-V1.0 SPICE PDS3 archive available at this URL
+
+   https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000
+
+   To use this meta-kernel users may need to modify the value of the
+   PATH_VALUES keyword to point to the actual location of the archive's
+   ``data'' directory on their system. Replacing ``/'' with ``\''
+   and converting line terminators to the format native to the user's
+   system may also be required if this meta-kernel is to be used on a
+   non-UNIX workstation.
+
+   This meta-kernel was created by the NAIF node's SPICE PDS archive
+   subsetting service version 2.1 on Mon Jun 19 08:13:34 PDT 2023.
+
+ 
+   \begindata
+ 
+      PATH_VALUES     = (
+                         '/home/ayek72/mnt/slowdata/planetarypy/spice_kernels/cassini'
+                        )
+ 
+      PATH_SYMBOLS    = (
+                         'KERNELS'
+                        )
+ 
+      KERNELS_TO_LOAD = (
+                         '$KERNELS/lsk/naif0012.tls'
+                         '$KERNELS/pck/pck00010.tpc'
+                         '$KERNELS/fk/cas_rocks_v18.tf'
+                         '$KERNELS/fk/cas_mimi_v202.tf'
+                         '$KERNELS/fk/cas_dyn_v03.tf'
+                         '$KERNELS/fk/cas_v41.tf'
+                         '$KERNELS/ik/cas_caps_v03.ti'
+                         '$KERNELS/ik/cas_cda_v01.ti'
+                         '$KERNELS/ik/cas_cirs_v09.ti'
+                         '$KERNELS/ik/cas_inms_v02.ti'
+                         '$KERNELS/ik/cas_iss_v10.ti'
+                         '$KERNELS/ik/cas_mag_v01.ti'
+                         '$KERNELS/ik/cas_mimi_v11.ti'
+                         '$KERNELS/ik/cas_radar_v11.ti'
+                         '$KERNELS/ik/cas_rpws_v01.ti'
+                         '$KERNELS/ik/cas_rss_v03.ti'
+                         '$KERNELS/ik/cas_sru_v02.ti'
+                         '$KERNELS/ik/cas_uvis_v06.ti'
+                         '$KERNELS/ik/cas_vims_v06.ti'
+                         '$KERNELS/sclk/cas00172.tsc'
+                         '$KERNELS/spk/180927AP_RE_90165_18018.bsp'
+                         '$KERNELS/spk/140809BP_IRRE_00256_25017.bsp'
+                         '$KERNELS/spk/110504R_SCPSE_11041_11093.bsp'
+                         '$KERNELS/ck/11001_12001pa_gapfill_v14.bc'
+                         '$KERNELS/ck/11017_11066py_as_flown.bc'
+                         '$KERNELS/ck/11044_11049ra.bc'
+                         '$KERNELS/ck/cas_cda_20120517.bc'
+                         '$KERNELS/ck/cas_lemms_05109_20001_v2.bc'
+                        )
+ 
+   \begintext
+ 
+
+
+
+

Loading the metakernel works! :

+
+
spice.furnsh(str(mkpath))
+
+

Or, with given save_location:

+
+
subset.save_location = Path(".")
+mkpath = subset.get_metakernel()
+mkpath
+
+
Path('cas_2011_v17_110213_110214.tm')
+
+
+

The metakernel is correctly adapted, however for these tests, I didn’t download the kernels again

+
+
!cat {mkpath}
+
+
KPL/MK
+
+   This meta-kernel lists a subset of kernels from the meta-kernel
+   cas_2011_v17.tm provided in the CO-S/J/E/V-SPICE-6-V1.0 SPICE PDS3 archive,
+   covering the whole or a part of the customer requested time period
+   from 2011-02-13T00:00:00.000 to 2011-02-14T00:00:00.000.
+
+   The documentation describing these kernels can be found in the
+   complete CO-S/J/E/V-SPICE-6-V1.0 SPICE PDS3 archive available at this URL
+
+   https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000
+
+   To use this meta-kernel users may need to modify the value of the
+   PATH_VALUES keyword to point to the actual location of the archive's
+   ``data'' directory on their system. Replacing ``/'' with ``\''
+   and converting line terminators to the format native to the user's
+   system may also be required if this meta-kernel is to be used on a
+   non-UNIX workstation.
+
+   This meta-kernel was created by the NAIF node's SPICE PDS archive
+   subsetting service version 2.1 on Mon Jun 19 08:13:34 PDT 2023.
+
+ 
+   \begindata
+ 
+      PATH_VALUES     = (
+                         '.'
+                        )
+ 
+      PATH_SYMBOLS    = (
+                         'KERNELS'
+                        )
+ 
+      KERNELS_TO_LOAD = (
+                         '$KERNELS/lsk/naif0012.tls'
+                         '$KERNELS/pck/pck00010.tpc'
+                         '$KERNELS/fk/cas_rocks_v18.tf'
+                         '$KERNELS/fk/cas_mimi_v202.tf'
+                         '$KERNELS/fk/cas_dyn_v03.tf'
+                         '$KERNELS/fk/cas_v41.tf'
+                         '$KERNELS/ik/cas_caps_v03.ti'
+                         '$KERNELS/ik/cas_cda_v01.ti'
+                         '$KERNELS/ik/cas_cirs_v09.ti'
+                         '$KERNELS/ik/cas_inms_v02.ti'
+                         '$KERNELS/ik/cas_iss_v10.ti'
+                         '$KERNELS/ik/cas_mag_v01.ti'
+                         '$KERNELS/ik/cas_mimi_v11.ti'
+                         '$KERNELS/ik/cas_radar_v11.ti'
+                         '$KERNELS/ik/cas_rpws_v01.ti'
+                         '$KERNELS/ik/cas_rss_v03.ti'
+                         '$KERNELS/ik/cas_sru_v02.ti'
+                         '$KERNELS/ik/cas_uvis_v06.ti'
+                         '$KERNELS/ik/cas_vims_v06.ti'
+                         '$KERNELS/sclk/cas00172.tsc'
+                         '$KERNELS/spk/180927AP_RE_90165_18018.bsp'
+                         '$KERNELS/spk/140809BP_IRRE_00256_25017.bsp'
+                         '$KERNELS/spk/110504R_SCPSE_11041_11093.bsp'
+                         '$KERNELS/ck/11001_12001pa_gapfill_v14.bc'
+                         '$KERNELS/ck/11017_11066py_as_flown.bc'
+                         '$KERNELS/ck/11044_11049ra.bc'
+                         '$KERNELS/ck/cas_cda_20120517.bc'
+                         '$KERNELS/ck/cas_lemms_05109_20001_v2.bc'
+                        )
+ 
+   \begintext
+ 
+
+
+
+
+
+
+

User functions

+
+

source

+
+

get_metakernel_and_files

+
+
 get_metakernel_and_files (mission:str, start:str, stop:str,
+                           save_location:str=None, quiet:bool=False)
+
+

For a given mission and start/stop times, download the kernels and get metakernel path

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
missionstrmission shorthand from datasets dataframe
startstrstart time as iso-string, or yyyy-jjj
stopstrstop time as iso-string or yyyy-jjj
save_locationstrNoneoverride storage into planetarypy archive
quietboolFalsesuppress kernel-wise feedback
ReturnsPathpathlib.Path to metakernel file with corrected data path.
+
+
mkpath = get_metakernel_and_files("cassini", "2011-02-13", "2011-02-14")
+mkpath
+
+
/Users/maye/mambaforge/envs/py39/lib/python3.9/site-packages/distributed/node.py:182: UserWarning: Port 8787 is already in use.
+Perhaps you already have a cluster running?
+Hosting the HTTP server on port 57624 instead
+  warnings.warn(
+
+
+ +
+
+
ck 11001_12001pa_gapfill_v14.bc locally available.
+ck 11017_11066py_as_flown.bc locally available.
+ck 11044_11049ra.bc locally available.
+ck cas_cda_20120517.bc locally available.
+ck cas_lemms_05109_20001_v2.bc locally available.
+fk cas_dyn_v03.tf locally available.
+fk cas_mimi_v202.tf locally available.
+fk cas_rocks_v18.tf locally available.
+fk cas_v41.tf locally available.
+ik cas_caps_v03.ti locally available.
+ik cas_cda_v01.ti locally available.
+ik cas_cirs_v09.ti locally available.
+ik cas_inms_v02.ti locally available.
+ik cas_iss_v10.ti locally available.
+ik cas_mag_v01.ti locally available.
+ik cas_mimi_v11.ti locally available.
+ik cas_radar_v11.ti locally available.
+ik cas_rpws_v01.ti locally available.
+ik cas_rss_v03.ti locally available.
+ik cas_sru_v02.ti locally available.
+ik cas_uvis_v06.ti locally available.
+ik cas_vims_v06.ti locally available.
+lsk naif0012.tls locally available.
+pck pck00010.tpc locally available.
+sclk cas00172.tsc locally available.
+spk 110504R_SCPSE_11041_11093.bsp locally available.
+spk 140809BP_IRRE_00256_25017.bsp locally available.
+spk 180927AP_RE_90165_18018.bsp locally available.
+
+
+
Path('/Users/maye/planetarypy_data/spice_kernels/cassini/cas_2011_v17_110213_110214.tm')
+
+
+
+

source

+
+
+

list_kernels_for_day

+
+
 list_kernels_for_day (mission:str, start:str, stop:str='')
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
missionstrmission shorthand from datasets dataframe
startstrstart time as iso-string, or yyyy-jjj
stopstrstop time as iso-string or yyyy-jjj
Returnslistlist of kernel names
+
+
list_kernels_for_day("mro", "2015-02-13")
+
+
['ck/mro_crm_psp_150201_150228.bc',
+ 'ck/mro_hga_psp_150210_150216_v2.bc',
+ 'ck/mro_mcs_psp_150201_150228.bc',
+ 'ck/mro_sa_psp_150210_150216_v2.bc',
+ 'ck/mro_sc_psp_150210_150216_v2.bc',
+ 'fk/mro_v16.tf',
+ 'ik/mro_crism_v10.ti',
+ 'ik/mro_ctx_v11.ti',
+ 'ik/mro_hirise_v12.ti',
+ 'ik/mro_marci_v10.ti',
+ 'ik/mro_mcs_v10.ti',
+ 'ik/mro_onc_v10.ti',
+ 'lsk/naif0012.tls',
+ 'pck/pck00008.tpc',
+ 'sclk/mro_sclkscet_00095_65536.tsc',
+ 'spk/de421.bsp',
+ 'spk/mar097.bsp',
+ 'spk/mro_psp34.bsp',
+ 'spk/mro_psp34_ssd_mro95a.bsp',
+ 'spk/mro_struct_v10.bsp']
+
+
+
+
# this always takes much longer than other requests!
+list_kernels_for_day("maven", "2017-01-01")
+
+
['ck/mvn_app_rel_161226_170101_v01.bc',
+ 'ck/mvn_app_rel_170102_170108_v01.bc',
+ 'ck/mvn_iuvs_rem_170101_170331_v03.bc',
+ 'ck/mvn_sc_rel_161226_170101_v01.bc',
+ 'ck/mvn_sc_rel_170102_170108_v02.bc',
+ 'ck/mvn_swea_nom_131118_300101_v02.bc',
+ 'fk/maven_v09.tf',
+ 'ik/maven_ant_v10.ti',
+ 'ik/maven_euv_v10.ti',
+ 'ik/maven_iuvs_v11.ti',
+ 'ik/maven_ngims_v10.ti',
+ 'ik/maven_sep_v12.ti',
+ 'ik/maven_static_v11.ti',
+ 'ik/maven_swea_v11.ti',
+ 'ik/maven_swia_v10.ti',
+ 'lsk/naif0012.tls',
+ 'pck/pck00010.tpc',
+ 'sclk/mvn_sclkscet_00072.tsc',
+ 'spk/de430s.bsp',
+ 'spk/mar097s.bsp',
+ 'spk/maven_orb_rec_170101_170401_v1.bsp',
+ 'spk/maven_struct_v01.bsp']
+
+
+
+
# this always takes much longer than other requests!
+list_kernels_for_day("orex", "2018-11-30")
+
+
['ck/orx_sa_rel_181126_181202_v01.bc',
+ 'ck/orx_sc_rel_181126_181202_v01.bc',
+ 'ck/orx_struct_mapcam_v01.bc',
+ 'ck/orx_struct_polycam_v01.bc',
+ 'fk/orx_shape_v03.tf',
+ 'fk/orx_v14.tf',
+ 'ik/orx_lidar_v00.ti',
+ 'ik/orx_navcam_v02.ti',
+ 'ik/orx_ocams_v07.ti',
+ 'ik/orx_ola_v01.ti',
+ 'ik/orx_otes_v00.ti',
+ 'ik/orx_ovirs_v00.ti',
+ 'ik/orx_rexis_v01.ti',
+ 'ik/orx_stowcam_v00.ti',
+ 'ik/orx_struct_v00.ti',
+ 'lsk/naif0012.tls',
+ 'pck/bennu_v17.tpc',
+ 'pck/pck00010.tpc',
+ 'sclk/orx_sclkscet_00074.tsc',
+ 'spk/bennu_refdrmc_v1.bsp',
+ 'spk/de424.bsp',
+ 'spk/orx_180301_181201_180921_od044_v1.bsp',
+ 'spk/orx_180801_190302_181218_od077_v1.bsp',
+ 'spk/orx_181203_190302_190104_od085_v1.bsp',
+ 'spk/orx_struct_v04.bsp']
+
+
+
+
def _test_mission_kernels_available(mission):
+    print("Doing", mission)
+    start = datasets.at[mission, "Start Time"]
+    end = datasets.at[mission, "Stop Time"]
+    half = Time(start) + (Time(end) - Time(start)) / 2
+    print("Half time:", half)
+    try:
+        found = list_kernels_for_day(mission, half)
+    except IndexError:
+        print("Problem with", mission)
+    else:
+        print(f"Found {len(found)} kernels for {mission}")
+
+for mission in datasets.index:
+    _test_mission_kernels_available(mission)
+
+
Doing bc
+Half time: 2020-11-25 00:00:00.000
+Found 41 kernels for bc
+Doing cassini
+Half time: 2007-09-30 12:00:01.000
+Found 32 kernels for cassini
+Doing clementine
+Half time: 1994-03-17 12:00:00.000
+Found 19 kernels for clementine
+Doing dart
+Half time: 2035-12-06 00:00:00.000
+Found 14 kernels for dart
+Doing dawn
+Half time: 2013-04-14 00:00:00.000
+Found 21 kernels for dawn
+Doing di
+Half time: 2005-04-26 12:00:00.000
+Found 16 kernels for di
+Doing ds1
+Half time: 2000-05-21 11:59:59.500
+Found 11 kernels for ds1
+Doing epoxi
+Half time: 2008-05-27 00:00:00.000
+Found 12 kernels for epoxi
+Doing em16
+Half time: 2019-08-07 23:59:59.500
+Found 27 kernels for em16
+Doing grail
+Half time: 2012-04-29 00:00:00.500
+Found 20 kernels for grail
+Doing hayabusa
+Half time: 2005-10-15 12:00:00.000
+Found 15 kernels for hayabusa
+Doing insight
+Half time: 2020-08-24 12:00:00.000
+Found 21 kernels for insight
+Doing juno
+Half time: 2017-02-08 23:59:58.500
+Found 25 kernels for juno
+Doing ladee
+Half time: 2031-11-04 11:59:59.000
+Found 12 kernels for ladee
+Doing lro
+Half time: 2016-04-30 23:59:59.500
+Found 24 kernels for lro
+Doing maven
+Half time: 2018-07-25 11:59:59.000
+Found 20 kernels for maven
+Doing opportunity
+Half time: 2010-12-23 00:00:00.500
+Found 23 kernels for opportunity
+Doing spirit
+Half time: 2006-11-20 12:00:00.000
+Found 24 kernels for spirit
+Doing messenger
+Half time: 2009-12-15 23:59:59.500
+Found 18 kernels for messenger
+Doing mars2020
+Half time: 2021-10-13 12:00:00.000
+Found 17 kernels for mars2020
+Doing mex
+Half time: 2013-03-01 11:59:59.500
+Found 39 kernels for mex
+Doing mgs
+Half time: 2001-11-03 23:59:59.500
+Found 20 kernels for mgs
+Doing ody
+Half time: 2012-01-03 12:00:00.500
+Found 14 kernels for ody
+Doing mro
+Half time: 2014-06-06 11:59:59.500
+Found 20 kernels for mro
+Doing msl
+Half time: 2017-05-16 23:59:58.500
+Found 50 kernels for msl
+Doing near
+Half time: 1998-10-14 12:00:00.000
+Found 15 kernels for near
+Doing nh
+Half time: 2013-01-08 12:00:00.000
+Found 28 kernels for nh
+Doing orex
+Half time: 2018-11-30 23:59:59.500
+
+
+
  warnings.warn('ERFA function "{}" yielded {}'.format(func_name, wmsg),
+  warnings.warn('ERFA function "{}" yielded {}'.format(func_name, wmsg),
+  warnings.warn('ERFA function "{}" yielded {}'.format(func_name, wmsg),
+  warnings.warn('ERFA function "{}" yielded {}'.format(func_name, wmsg),
+
+
+
OSError: SPICE Server request returned status code: {r.status_code}
+
+
+
+

NOTE: Any ErfaWarnings above are caused by the LADEE mission using a kernel up to 2050, and the astropy.Time module warns about potential precicision issues regarding unknown leapseconds that will be put in in the future.

+
+
+
+

Generic kernel management

+

There are a few generic kernels that are required for basic illumination calculations as supported by this package.

+
+

source

+
+
+

download_generic_kernels

+
+
 download_generic_kernels (overwrite=False)
+
+

Download all kernels as required by generic_kernel_list.

+
+
download_generic_kernels()
+
+
+

source

+
+
+

load_generic_kernels

+
+
 load_generic_kernels ()
+
+

Load all kernels in generic_kernels list.

+

Loads pure planetary bodies meta-kernel without spacecraft data.

+

Downloads any missing generic kernels.

+
+
spice.kclear()
+
+
+
load_generic_kernels()
+
+
+

source

+
+
+

show_loaded_kernels

+
+
 show_loaded_kernels ()
+
+

Print overview of loaded kernels.

+
+
show_loaded_kernels()
+
+
+
from nbdev import nbdev_export
+
+nbdev_export()
+
+ + +
+
+ +
+ + +
+ + + + + \ No newline at end of file diff --git a/api/utils.html b/api/utils.html new file mode 100644 index 0000000..e374f45 --- /dev/null +++ b/api/utils.html @@ -0,0 +1,1327 @@ + + + + + + + + + + +planetarypy - Utils + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Utils

+
+ +
+
+ General utilities. Should probably split up into utils.time and utils.download +
+
+ + +
+ + + + +
+ + + +
+ + + +
+

Time format strings

+

First, we define the different format strings these utils convert from and to.

+

An identifier with xxx_dt_format_xxx in its name signifies a full datetime format as compared to dates only.

+
+

NASA date to datetime and ISO

+

What we call NASA data, is the often used YYYY-JJJ based format in the Planetary Data System identifying dates via the running number of the day in the year, e.g. “2010-240”.

+
+

source

+
+
+

nasa_time_to_datetime

+
+
 nasa_time_to_datetime (inputstr)
+
+

User function to convert all kinds of NASA PDS datestrings with day_of_year into datetimes.

+ +++++ + + + + + + + + + + + + + + + + + + + +
TypeDetails
inputstrinputstr of format YYYY-jjj, YYYY-jjjTHH:MM:SS or YYYY-jjjTHH:MM:SS.ffffff
Returnsdatetime
+

Example dates and times to test:

+
+
nasa_date = "2010-110"
+iso_date = "2010-4-20"
+nasa_datetime = "2010-110T10:12:14"
+nasa_datetime_with_ms = nasa_datetime + ".123000"
+iso_datetime = "2010-04-20T10:12:14"
+iso_datetime_with_ms = iso_datetime + ".123000"
+nasa_times = [nasa_date, nasa_datetime, nasa_datetime_with_ms]
+iso_times = [iso_date, iso_datetime, iso_datetime_with_ms]
+
+
+
assert nasa_time_to_datetime(nasa_date) == dt.datetime(2010, 4, 20, 0, 0)
+
+
+
assert nasa_time_to_datetime(nasa_datetime) == dt.datetime(2010, 4, 20, 10, 12, 14)
+
+
+
assert nasa_time_to_datetime(nasa_datetime_with_ms) == dt.datetime(
+    2010, 4, 20, 10, 12, 14, 123000
+)
+
+
+

source

+
+
+

nasa_time_to_iso

+
+
 nasa_time_to_iso (inputstr:str, with_hours:bool=False)
+
+

Convert the day-number based NASA datetime format to ISO

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
inputstrstr
with_hoursboolFalseSwitch if return is wanted with hours (i.e. isoformat)
ReturnsstrDatestring in ISO-format.
+

Conversions to ISO format, but not providing hours if they are not in input:

+
+
for t in nasa_times:
+    print("Input:", t)
+    print(nasa_time_to_iso(t))
+
+
Input: 2010-110
+2010-04-20
+Input: 2010-110T10:12:14
+2010-04-20T10:12:14
+Input: 2010-110T10:12:14.123000
+2010-04-20T10:12:14.123000
+
+
+

If hours are wanted in the isostring, use with_hours=True:

+
+
for t in nasa_times:
+    print("Input:", t)
+    print(nasa_time_to_iso(t, with_hours=True))
+
+
Input: 2010-110
+2010-04-20T00:00:00
+Input: 2010-110T10:12:14
+2010-04-20T10:12:14
+Input: 2010-110T10:12:14.123000
+2010-04-20T10:12:14.123000
+
+
+
+
assert nasa_time_to_iso(nasa_date, with_hours=True) == "2010-04-20T00:00:00"
+assert nasa_time_to_iso(nasa_date) == "2010-04-20"
+
+
+
+

ISO date to “NASA-format”

+

Again, with NASA-format, we mean the ofen used (in PDS and mission files) YYYY-JJJ format, e.g. “2010-240”.

+
+

source

+
+
+

iso_to_nasa_time

+
+
 iso_to_nasa_time (inputstr:str)
+
+

Convert iso date to day-number based NASA date.

+ + + + + + + + + + + + + + + + + + + + +
TypeDetails
inputstrstrDate string of the form Y-m-d
ReturnsstrDatestring in NASA standard yyyy-jjj
+
+

source

+
+
+

iso_to_nasa_datetime

+
+
 iso_to_nasa_datetime (dtimestr:str)
+
+

Convert iso datetime to day-number based NASA datetime.

+ + + + + + + + + + + + + + + +
TypeDetails
dtimestrstrDatetime string of the form yyyy-mm-ddTHH-MM-SS
+
+
for t in iso_times:
+    print("Input:", t)
+    print(iso_to_nasa_time(t))
+
+
Input: 2010-4-20
+2010-110
+Input: 2010-04-20T10:12:14
+2010-110T10:12:14
+Input: 2010-04-20T10:12:14.123000
+2010-110T10:12:14.123000
+
+
+
+
assert iso_to_nasa_time(iso_date) == nasa_date
+
+
+
assert nasa_time_to_iso(nasa_datetime) == iso_datetime
+assert nasa_time_to_iso(nasa_datetime_with_ms) == iso_datetime_with_ms
+
+
+
assert iso_to_nasa_time(iso_datetime) == nasa_datetime
+assert iso_to_nasa_time(iso_datetime_with_ms) == nasa_datetime_with_ms
+
+
+

source

+
+
+

replace_all_nasa_times

+
+
 replace_all_nasa_times (df:pandas.core.frame.DataFrame)
+
+

Find all NASA times in dataframe and replace with ISO.

+

Changes will be implemented on incoming dataframe!

+

This will be done for all columns with the word TIME in the column name.

+ + + + + + + + + + + + + + + +
TypeDetails
dfDataFrameDataFrame with NASA time columns
+
+
+
+

Network utils

+
+

source

+
+

have_internet

+
+
 have_internet ()
+
+

Fastest way to check for active internet connection.

+

From https://stackoverflow.com/a/29854274/680232

+
+

source

+
+
+

url_retrieve

+
+
 url_retrieve (url:str, outfile:str, chunk_size:int=4096, user:str=None,
+               passwd:str=None)
+
+

Improved urlretrieve with progressbar, timeout and chunker.

+

This downloader has built-in progress bar using tqdm and using the requests package it improves standard urllib behavior by adding time-out capability.

+

I tested different chunk_sizes and most of the time 128 was actually fastest, YMMV.

+

Inspired by https://stackoverflow.com/a/61575758/680232

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDefaultDetails
urlstrThe URL to download
outfilestrThe path where to store the downloaded file.
chunk_sizeint4096def chunk size for the request.iter_content call
userstrNoneif provided, create HTTPBasicAuth object
passwdstrNoneif provided, create HTTPBasicAuth object
+
+

source

+
+
+

check_url_exists

+
+
 check_url_exists (url)
+
+
+

source

+
+
+

get_remote_timestamp

+
+
 get_remote_timestamp (url:str)
+
+

Get the timestamp of a remote file.

+

Useful for checking if there’s an updated file available.

+ + + + + + + + + + + + + + + + + + + + +
TypeDetails
urlstrURL to check timestamp for
Returnsdatetime
+
+

source

+
+
+

parse_http_date

+
+
 parse_http_date (text:str)
+
+

Parse date string retrieved via urllib.request.

+ +++++ + + + + + + + + + + + + + + + + + + + +
TypeDetails
textstrdatestring from urllib.request
Returnsdatetimedt.datetime object from given datetime string
+
+
have_internet()
+
+
True
+
+
+
+
+
+

Image processing helpers

+
+

source

+
+

file_variations

+
+
 file_variations (filename:Union[str,pathlib.Path], extensions:list)
+
+

Create a variation of file names.

+

Generate a list of variations on a filename by replacing the extension with the provided list.

+

Adapted from T. Olsens `file_variations of the pysis module for using pathlib.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDetails
filenameUnionThe original filename to use as a base.
extensionslist
Returnslistlist of Paths
+
+

source

+
+
+

get_gdal_center_coords

+
+
 get_gdal_center_coords (imgpath:Union[str,pathlib.Path])
+
+

Get center rows/cols pixel coordinate for GDAL-readable dataset.

+

Check CLI gdalinfo --formats to see all formats that GDAL can open.

+ + + + + + + + + + + + + + + + + + + + +
TypeDetails
imgpathUnionPath to raster image that is readable by GDLA
ReturnsTuplecenter row/col coordinates.
+
+

source

+
+
+

height_from_shadow

+
+
 height_from_shadow (shadow_in_pixels:float, sun_elev:float)
+
+

Calculate height of an object from its shadow length.

+

Note, that your image might have been binned. You need to correct shadow_in_pixels for that.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
TypeDetails
shadow_in_pixelsfloatMeasured length of shadow in pixels
sun_elevfloatAnge of sun over horizon in degrees
ReturnsfloatHeight [meter]
+
+
fname = "abc.txt"
+
+
+
extensions = ".cub .cal.cub .map.cal.cub".split()
+
+
+
file_variations(fname, extensions)
+
+
[Path('abc.cub'), Path('abc.cal.cub'), Path('abc.map.cal.cub')]
+
+
+
+
assert len(extensions) == len(file_variations(fname, extensions))
+
+
+
+
+

ISIS helpers

+
+

source

+
+

catch_isis_error

+
+
 catch_isis_error (func)
+
+

can be used as decorator for any ISIS function

+
+
+
+

Notebook tools

+
+
from nbdev import nbdev_export
+
+nbdev_export()
+
+ + +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..c5725b6 --- /dev/null +++ b/index.html @@ -0,0 +1,1291 @@ + + + + + + + + + +planetarypy - PlanetaryPy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

PlanetaryPy

+
+ + + +
+ + + + +
+ + + +
+ + + +
+

PlanetaryPy

+
+

Beta release: This will become (part of) the core package of the PlanetaryPy organisation.

+
+

Potential logo:image.png

+
+

Install

+
pip install planetarypy
+

This will pull in these other dependencies and their dependencies:

+

tomlkit pandas pvl numpy python-dateutil tqdm lxml yarl hirise-tools kalasiris

+
+
+

Suggested standard abbreviations:

+
    +
  • Inside these docs the package will be called PLPY for brevity.
  • +
  • A standard Python import could be: plp or plpy +
      +
    • because the last p in plp can be pronounced out, we consider these equivalent for human conversation and pronounce these “plippy”.
    • +
  • +
+
+
+

General scope

+

First and foremost this package should provide support in working with planetary science data.

+

With working we mean:

+
    +
  • locating
  • +
  • retrieving
  • +
  • reading
  • +
  • further processing
  • +
+

of data.

+
+

Locating

+

This library manages, via its PDS tools, multiple PDS3 index files per instrument that can be used for identifying data of interest. These index files are automatically downloaded and converted to the very performant (and cloud-ready) parquet file format. > Parquet is able to store advanced datatypes like nan-capable integer and full datetime objects, as opposed to HDF5.

+
+
+

Retrieving

+

The interface to getting data is via a path-retrieving function based on a PDS product-id. If that product-id is available locally, the path will be returned. If it is not, it will previously be downloaded, stored in a systematic fashion organized by mission and instrument, and then the local path will be returned.

+
+
+

Reading

+

For now, the library only returns the path to the object and the user needs to sort out the reading process. A recently funded NASA project Planetary Data Reader will be integrated here, so that basic reading into memory can be provided.

+

As such, we anticipate two classes of reading support: 1. basic reading into numpy and/or xarray 1. added reader functionality like basic plots and basic geospatial processing, as supported by interested parties

+

There will exist larger other packages that focus on working with a given instrument’s data, in which case that package could become an affiliated package with the planetarypy GitHub organization, if so desired.

+
+
+

Further processing

+

In the future, additional frequently used procedures will be added to this library, e.g. * frequently used GDAL/rasterio procedures * frequently used SPICE operations * like surface illumination on a given body

+
+
+
+

PDS tools

+

Look at the Apps docs to see what pds.apps exist for easily getting PDS indexes. The find_index app is specifically useful when you don’t know what index files exist.

+

So far, the following indexes are supported (but not necessarily all tested within PLPY):

+
    +
  • Cassini +
      +
    • ISS (all)
    • +
    • UVIS (all)
    • +
  • +
  • MRO +
      +
    • CTX EDR
    • +
    • HiRISE +
        +
      • EDR, RDR, DTM +
          +
        • EDR index has a bug (as delivered by the team, reported), where I need to activate an existing fix for it.
        • +
      • +
    • +
  • +
  • LRO +
      +
    • Diviner (DLRE) +
        +
      • EDR, RDR
      • +
    • +
    • LOLA +
        +
      • EDR, RDR
      • +
    • +
  • +
+
+

More indexes

+

More indexes of other instruments can be easily added by following the existing structure of what has been copied into your config at ~/.planetarypy_config.toml.

+

Please consider submitting a pull request for adding further PDS index files into the config file at its source: https://github.com/michaelaye/nbplanetary/blob/master/planetarypy/data/planetarypy_config.toml

+
+
+
+

Utils

+

Find something in Utils for working with NASA timestamps and a well working URL download function url_retrieve, among other stuff.

+
+
+

Experiment/Instrument Specific

+

So far, planetarypy supports CTX EDR and HiRISE RGB.NOMAP data. Look at the CTX and HiRISE pages for descriptions of classes for working with these data.

+
+
+

Bug reports

+

Please submit bug reports at https://github.com/michaelaye/nbplanetary/issues

+
+
+

How to use

+
+

Indexes

+

See PDS apps for more details.

+
+
from planetarypy.pds.apps import get_index
+
+
+
ctrindex = get_index("mro.ctx", "edr", refresh=False)
+ctrindex.sample(5, random_state=42)  # setting random_state to always get same files for docs
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDFILE_SPECIFICATION_NAMEORIGINAL_PRODUCT_IDPRODUCT_IDIMAGE_TIMEINSTRUMENT_IDINSTRUMENT_MODE_IDLINE_SAMPLESLINESSPATIAL_SUMMING...SUB_SOLAR_LATITUDESUB_SPACECRAFT_LONGITUDESUB_SPACECRAFT_LATITUDESOLAR_DISTANCESOLAR_LONGITUDELOCAL_TIMEIMAGE_SKEW_ANGLERATIONALE_DESCDATA_QUALITY_DESCORBIT_NUMBER
86101MROX_2757DATA/J07_047671_1256_XN_54S338W.IMG4A_04_10F0036A00J07_047671_1256_XN_54S338W2016-09-27 00:24:54.682CTXNIFL252881921...-19.41338.09-54.43207762612.4230.5815.4890.1Crater in Noachis TerraOK47671
54420MROX_1819DATA/D10_031170_1808_XN_00N221W.IMG4A_04_109C017D00D10_031170_1808_XN_00N221W2013-03-21 06:58:09.892CTXNIFL505671681...-24.39221.520.88209925149.5286.1514.4990.1Ride-along with HiRISEOK31170
71053MROX_2331DATA/F10_039530_1470_XI_33S203W.IMG4A_04_10C9000F00F10_039530_1470_XI_33S203W2015-01-01 16:20:01.840CTXITL5056522241...-25.3203.96-33.12207070298.2263.9315.290.4Terrain in Terra CimmeriaOK39530
51385MROX_1742DATA/D04_028919_2026_XN_22N327W.IMG4A_04_109002A800D04_028919_2026_XN_22N327W2012-09-26 21:17:00.483CTXNIFL505661441...0.67327.0622.78219814412.3178.4415.5390.1Ride-along with HiRISEOK28919
51923MROX_1757DATA/D05_029283_1524_XN_27S180W.IMG4A_04_1092020B00D05_029283_1524_XN_27S180W2012-10-25 05:44:21.786CTXNIFL505692161...-6.28178.36-27.56214830233.7194.7215.5790.1Ride-along with HiRISEOK29283
+ +

5 rows × 51 columns

+
+
+
+
+
+
hirise_rdr = get_index("mro.hirise", "rdr")
+hirise_rdr.sample(5, random_state=42)
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDFILE_NAME_SPECIFICATIONINSTRUMENT_HOST_IDINSTRUMENT_IDOBSERVATION_IDPRODUCT_IDPRODUCT_VERSION_IDTARGET_NAMEORBIT_NUMBERMISSION_PHASE_NAME...LINE_PROJECTION_OFFSETSAMPLE_PROJECTION_OFFSETCORNER1_LATITUDECORNER1_LONGITUDECORNER2_LATITUDECORNER2_LONGITUDECORNER3_LATITUDECORNER3_LONGITUDECORNER4_LATITUDECORNER4_LONGITUDE
144822MROHR_0001RDR/ESP/ORB_074100_074199/ESP_074107_1410/ESP_...MROHIRISEESP_074107_1410ESP_074107_1410_COLOR1MARS74107Extended Science Phase...-4568562.52009279.5-38.7446159.311-38.7465159.287-38.614159.269-38.6121159.293
22518MROHR_0001RDR/ESP/ORB_014000_014099/ESP_014080_1040/ESP_...MROHIRISEESP_014080_1040ESP_014080_1040_RED1MARS14080Extended Science Phase...-3193960.0-845180.0-76.0185165.215-76.0315164.858-75.6958164.658-75.6831165.005
86634MROHR_0001RDR/ESP/ORB_046300_046399/ESP_046395_1730/ESP_...MROHIRISEESP_046395_1730ESP_046395_1730_COLOR1MARS46395Extended Science Phase...-1584330.0-26573400.0-6.9957292.569-6.9979292.551-6.6838292.51-6.6815292.529
138163MROHR_0001RDR/ESP/ORB_069100_069199/ESP_069178_2345/ESP_...MROHIRISEESP_069178_2345ESP_069178_2345_RED1MARS69178Extended Science Phase...12762196.015708938.053.859876.759153.847476.60254.001376.567254.013776.7249
125490MROHR_0001RDR/ESP/ORB_063500_063599/ESP_063504_1995/ESP_...MROHIRISEESP_063504_1995ESP_063504_1995_COLOR1MARS63504Extended Science Phase...4638178.512794202.019.4523124.14919.45124.12819.5686124.11319.5709124.133
+ +

5 rows × 54 columns

+
+
+
+
+
+
+
+

Instrument tools

+
+

CTX

+
+
from planetarypy.ctx import CTX
+
+
+
pid = ctrindex.sample(random_state=42).squeeze().PRODUCT_ID
+pid
+
+
'J07_047671_1256_XN_54S338W'
+
+
+
+
ctx = CTX(pid)
+ctx
+
+
PRODUCT_ID: J07_047671_1256_XN_54S338W
+URL: https://pds-imaging.jpl.nasa.gov/data/mro/mars_reconnaissance_orbiter/ctx/mrox_2757/data/J07_047671_1256_XN_54S338W.IMG
+source_path: /remote/trove/geo/planet/Mars/CTX/pds/mrox_2757/J07_047671_1256_XN_54S338W.IMG
+Shape: (8192, 2528)
+
+
+
+
ctx.source_path
+
+
Path('/remote/trove/geo/planet/Mars/CTX/pds/mrox_2757/J07_047671_1256_XN_54S338W.IMG')
+
+
+
+
ctx.download()
+
+
File exists. Use `overwrite=True` to download fresh.
+
+
+
+
+
+

Acknowledgements

+

The creation of this library was in part supported by:

+
    +
  • NASA Cassini UVIS mission
  • +
  • NASA SSW grant NNX15AH36G
  • +
  • NASA PDART grant 80NSSC20K0875
  • +
  • NASA SSW grant 80NSSC20K0748
  • +
  • German Space Agency (DLR Bonn), grant 50 OO 2204, on behalf of the German Federal Ministry for Economic Affairs and Climate Action.
  • +
  • This research has made use of the USGS Integrated Software for Imagers and Spectrometers (ISIS)(Laura et al. 2022).
  • +
+ + + +
+
+ +

References

+
+Laura, Jason, Alex Acosta, Travis Addair, Lauren Adoram-Kershner, James Alexander, Oleg Alexandrov, Stacey Alley, et al. 2022. “Integrated Software for Imagers and Spectrometers.” Zenodo. https://doi.org/10.5281/zenodo.7443567. +
+
+ +
+ + + + + \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..1378433 --- /dev/null +++ b/robots.txt @@ -0,0 +1 @@ +Sitemap: https://michaelaye.github.io/planetarypy/sitemap.xml diff --git a/search.json b/search.json new file mode 100644 index 0000000..0d279ec --- /dev/null +++ b/search.json @@ -0,0 +1,653 @@ +[ + { + "objectID": "tutorials/pdw2023_demo.html", + "href": "tutorials/pdw2023_demo.html", + "title": "Demo of PlanetaryPy", + "section": "", + "text": "import planetarypy as plpy\nplpy.__version__\n\n'0.30.0'\nfrom planetarypy.pds.apps import get_index, find_indexes\n!head -n 50 $HOME/.planetarypy_config.toml\n\nstorage_root = \"/home/ayek72/mnt/slowdata/planetarypy\"\n\n[missions.cassini.iss.indexes.index]\n# 'index' is the ID of the originally delivered index\n# inventory, moon_summary, ring_summary, and saturn_summary are other indexes produced\n# by the Rings-Moons Systems PDS node\nurl = \"https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_index.lbl\"\ntimestamp = \"2021-02-21T15:55:27\"\n\n[missions.cassini.iss.indexes.inventory]\nurl = \"https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_inventory.lbl\"\n\n[missions.cassini.iss.indexes.moon_summary]\nurl = \"https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_moon_summary.lbl\"\ntimestamp = \"2019-06-08T16:28:22\"\n\n[missions.cassini.iss.indexes.ring_summary]\nurl = \"https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_ring_summary.lbl\"\ntimestamp = \"2022-08-08T11:54:51.140376\"\n\n[missions.cassini.iss.indexes.saturn_summary]\nurl = \"https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_saturn_summary.lbl\"\ntimestamp = \"2022-12-21T18:10:29.248055\"\n\n\n[missions.cassini.uvis.indexes.index]\nurl = \"https://pds-rings.seti.org/holdings/metadata/COUVIS_0xxx/COUVIS_0999/COUVIS_0999_index.lbl\"\ntimestamp = \"2022-09-01T14:14:10.014705\"\n\n[missions.cassini.uvis.indexes.moon_summary]\nurl = \"https://pds-rings.seti.org/holdings/metadata/COUVIS_0xxx/COUVIS_0999/COUVIS_0999_moon_summary.lbl\"\n\n[missions.cassini.uvis.indexes.ring_summary]\nurl = \"https://pds-rings.seti.org/holdings/metadata/COUVIS_0xxx/COUVIS_0999/COUVIS_0999_ring_summary.lbl\"\ntimestamp = \"2022-08-08T11:53:16.071844\"\n\n[missions.cassini.uvis.indexes.saturn_summary]\nurl = \"https://pds-rings.seti.org/holdings/metadata/COUVIS_0xxx/COUVIS_0999/COUVIS_0999_saturn_summary.lbl\"\n\n[missions.cassini.uvis.indexes.supplemental_index]\nurl = \"https://pds-rings.seti.org/holdings/metadata/COUVIS_0xxx/COUVIS_0999/COUVIS_0999_supplemental_index.lbl\"\n\n[missions.cassini.uvis.indexes.versions]\nurl = \"https://pds-rings.seti.org/holdings/metadata/COUVIS_0xxx/COUVIS_0999/COUVIS_0999_versions.lbl\"\n\n\n\n[missions.mro.hirise.indexes.dtm]\nurl = \"https://hirise-pds.lpl.arizona.edu/PDS/INDEX/DTMCUMINDEX.LBL\"\nfind_indexes(\"cassini.iss\")\n\n['index', 'inventory', 'moon_summary', 'ring_summary', 'saturn_summary']\nfind_indexes(\"cassini.uvis\")\n\n['index',\n 'moon_summary',\n 'ring_summary',\n 'saturn_summary',\n 'supplemental_index',\n 'versions']\ndf = get_index(\"cassini.iss.index\")\ndf.head()\n\n\n\n\n\n\n\n\n\nFILE_NAME\nFILE_SPECIFICATION_NAME\nVOLUME_ID\nANTIBLOOMING_STATE_FLAG\nBIAS_STRIP_MEAN\nCALIBRATION_LAMP_STATE_FLAG\nCOMMAND_FILE_NAME\nCOMMAND_SEQUENCE_NUMBER\nDARK_STRIP_MEAN\nDATA_CONVERSION_TYPE\n...\nTWIST_ANGLE\nTARGET_LIST\nUPPER_LEFT_LATITUDE\nUPPER_LEFT_LONGITUDE\nUPPER_RIGHT_LATITUDE\nUPPER_RIGHT_LONGITUDE\nDATA_SET_NAME\nINSTRUMENT_HOST_ID\nPRODUCT_TYPE\nSTANDARD_DATA_PRODUCT_ID\n\n\n\n\n0\nN1454725799_1.IMG\ndata/1454725799_1455008789/N1454725799_1.IMG\nCOISS_2001\nOFF\n14.869863\n<NA>\nOPNAV_848_3.ioi\n8\n0.0\n12BIT\n...\n89.513591\nS2_2004,HELENE,TELESTO,RHEA\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\nCASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...\nCO\nEDR\nISS_EDR\n\n\n1\nN1454726579_1.IMG\ndata/1454725799_1455008789/N1454726579_1.IMG\nCOISS_2001\nOFF\n14.860078\n<NA>\nOPNAV_864_3.ioi\n8\n0.0\n12BIT\n...\n89.647635\nTITAN\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\nCASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...\nCO\nEDR\nISS_EDR\n\n\n2\nN1454727359_1.IMG\ndata/1454725799_1455008789/N1454727359_1.IMG\nCOISS_2001\nOFF\n14.87867\n<NA>\nOPNAV_880_3.ioi\n8\n0.0\n12BIT\n...\n89.679084\nHYPERION\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\nCASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...\nCO\nEDR\nISS_EDR\n\n\n3\nN1454728139_1.IMG\ndata/1454725799_1455008789/N1454728139_1.IMG\nCOISS_2001\nOFF\n14.842465\n<NA>\nOPNAV_912_3.ioi\n8\n0.0\n12BIT\n...\n88.677516\nPHOEBE\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\nCASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...\nCO\nEDR\nISS_EDR\n\n\n4\nN1454728919_1.IMG\ndata/1454725799_1455008789/N1454728919_1.IMG\nCOISS_2001\nOFF\n14.86497\n<NA>\nOPNAV_896_3.ioi\n8\n0.0\n12BIT\n...\n89.79891\nIAPETUS\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\nCASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...\nCO\nEDR\nISS_EDR\n\n\n\n\n5 rows × 140 columns\ndf.columns\n\nIndex(['FILE_NAME', 'FILE_SPECIFICATION_NAME', 'VOLUME_ID',\n 'ANTIBLOOMING_STATE_FLAG', 'BIAS_STRIP_MEAN',\n 'CALIBRATION_LAMP_STATE_FLAG', 'COMMAND_FILE_NAME',\n 'COMMAND_SEQUENCE_NUMBER', 'DARK_STRIP_MEAN', 'DATA_CONVERSION_TYPE',\n ...\n 'TWIST_ANGLE', 'TARGET_LIST', 'UPPER_LEFT_LATITUDE',\n 'UPPER_LEFT_LONGITUDE', 'UPPER_RIGHT_LATITUDE', 'UPPER_RIGHT_LONGITUDE',\n 'DATA_SET_NAME', 'INSTRUMENT_HOST_ID', 'PRODUCT_TYPE',\n 'STANDARD_DATA_PRODUCT_ID'],\n dtype='object', length=140)\ndf.set_index(\"IMAGE_MID_TIME\").loc['20170914 00':'20170914 15']\n\n\n\n\n\n\n\n\n\nFILE_NAME\nFILE_SPECIFICATION_NAME\nVOLUME_ID\nANTIBLOOMING_STATE_FLAG\nBIAS_STRIP_MEAN\nCALIBRATION_LAMP_STATE_FLAG\nCOMMAND_FILE_NAME\nCOMMAND_SEQUENCE_NUMBER\nDARK_STRIP_MEAN\nDATA_CONVERSION_TYPE\n...\nTWIST_ANGLE\nTARGET_LIST\nUPPER_LEFT_LATITUDE\nUPPER_LEFT_LONGITUDE\nUPPER_RIGHT_LATITUDE\nUPPER_RIGHT_LONGITUDE\nDATA_SET_NAME\nINSTRUMENT_HOST_ID\nPRODUCT_TYPE\nSTANDARD_DATA_PRODUCT_ID\n\n\nIMAGE_MID_TIME\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n2017-09-14 13:26:59.927\nN1884091007_1.IMG\ndata/1884017637_1884113741/N1884091007_1.IMG\nCOISS_2116\nOFF\n21.611872\n<NA>\ntrigger_25245_3.ioi\n25245\n1.218444\n12BIT\n...\n4.868274\n<NA>\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\nCASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...\nCO\nEDR\nISS_EDR\n\n\n2017-09-14 13:31:18.910\nN1884091266_1.IMG\ndata/1884017637_1884113741/N1884091266_1.IMG\nCOISS_2116\nOFF\n21.594259\n<NA>\ntrigger_25245_3.ioi\n25245\n1.222236\n12BIT\n...\n4.812541\n<NA>\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\nCASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...\nCO\nEDR\nISS_EDR\n\n\n2017-09-14 13:35:41.908\nN1884091529_1.IMG\ndata/1884017637_1884113741/N1884091529_1.IMG\nCOISS_2116\nOFF\n21.87019\n<NA>\ntrigger_25245_3.ioi\n25245\n1.229574\n12BIT\n...\n4.77302\nDAPHNIS\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\nCASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...\nCO\nEDR\nISS_EDR\n\n\n2017-09-14 13:40:04.906\nN1884091792_1.IMG\ndata/1884017637_1884113741/N1884091792_1.IMG\nCOISS_2116\nOFF\n21.843445\n<NA>\ntrigger_25245_3.ioi\n25245\n1.254036\n12BIT\n...\n4.748047\n<NA>\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\nCASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...\nCO\nEDR\nISS_EDR\n\n\n2017-09-14 13:44:27.905\nN1884092055_1.IMG\ndata/1884017637_1884113741/N1884092055_1.IMG\nCOISS_2116\nOFF\n21.885845\n<NA>\ntrigger_25245_3.ioi\n25245\n1.263209\n12BIT\n...\n4.736484\n<NA>\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\nCASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...\nCO\nEDR\nISS_EDR\n\n\n2017-09-14 13:48:50.903\nN1884092318_1.IMG\ndata/1884017637_1884113741/N1884092318_1.IMG\nCOISS_2116\nOFF\n21.558872\n<NA>\ntrigger_25245_3.ioi\n25245\n1.260029\n12BIT\n...\n4.737905\n<NA>\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\nCASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...\nCO\nEDR\nISS_EDR\n\n\n2017-09-14 13:53:13.901\nN1884092581_1.IMG\ndata/1884017637_1884113741/N1884092581_1.IMG\nCOISS_2116\nOFF\n21.606491\n<NA>\ntrigger_25245_3.ioi\n25245\n1.248288\n12BIT\n...\n4.750201\n<NA>\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\n-100000000000000005366162204393472.0\nCASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...\nCO\nEDR\nISS_EDR\n\n\n\n\n7 rows × 139 columns", + "crumbs": [ + "tutorials", + "Demo of PlanetaryPy" + ] + }, + { + "objectID": "tutorials/pdw2023_demo.html#archived-kernels", + "href": "tutorials/pdw2023_demo.html#archived-kernels", + "title": "Demo of PlanetaryPy", + "section": "Archived kernels", + "text": "Archived kernels\n\nfrom planetarypy.spice import kernels\n\n\nkernels.datasets\n\n\n\n\n\n\n\n\n\npath\nMission Name\nPDS3 or PDS4\nData Size (GB)\nStart Time\nStop Time\n\n\nshorthand\n\n\n\n\n\n\n\n\n\n\nbc\nbc/bc_spice\nBepiColombo\n4\n2.3\n2018-10-20\n2023-06-21\n\n\ncassini\nco-s_j_e_v-spice-6-v1.0/cosp_1000\nCassini Orbiter\n3\n62.5\n1997-10-15\n2017-09-15\n\n\nclementine\nclem1-l-spice-6-v1.0/clsp_1000\nClementine\n3\n0.8\n1994-01-26\n1994-05-07\n\n\ndart\ndart/dart_spice\nDART\n4\n10.0\n2021-11-09\n2050-01-01\n\n\ndawn\ndawn-m_a-spice-6-v1.0/dawnsp_1000\nDAWN\n3\n86.4\n2007-09-27\n2018-10-31\n\n\ndi\ndi-c-spice-6-v1.0/disp_1000\nDeep Impact\n3\n0.7\n2005-01-12\n2005-08-09\n\n\nds1\nds1-a_c-spice-6-v1.0/ds1sp_1000\nDeep Space 1\n3\n0.9\n1998-10-24\n2001-12-18\n\n\nepoxi\ndif-c_e_x-spice-6-v1.0/epxsp_1000\nEPOXI\n3\n1.0\n2005-08-23\n2011-03-01\n\n\nem16\nem16/em16_spice\nExoMars TGO 2016\n4\n10.4\n2016-03-14\n2023-10-01\n\n\ngrail\ngrail-l-spice-6-v1.0/grlsp_1000\nGRAIL\n3\n4.3\n2011-09-10\n2012-12-17\n\n\nhayabusa\nhay-a-spice-6-v1.0/haysp_1000\nHayabusa\n3\n0.3\n2005-09-11\n2005-11-19\n\n\ninsight\ninsight/insight_spice\nInSight\n4\n0.9\n2018-05-05\n2022-12-15\n\n\njuno\njno-j_e_ss-spice-6-v1.0/jnosp_1000\nJUNO\n3\n48.2\n2011-08-05\n2023-04-08\n\n\nladee\nladee/ladee_spice\nLADEE\n4\n0.6\n2013-09-07\n2050-01-01\n\n\nlro\nlro-l-spice-6-v1.0/lrosp_1000\nLunar Reconnaissance Orbiter\n3\n616.9\n2009-06-18\n2023-09-15\n\n\nmaven\nmaven/maven_spice\nMAVEN\n4\n56.6\n2013-11-18\n2023-10-01\n\n\nopportunity\nmer1-m-spice-6-v1.0/mer1sp_1000\nMER 1 (Opportunity)\n3\n4.1\n2003-07-07\n2018-06-10\n\n\nspirit\nmer2-m-spice-6-v1.0/mer2sp_1000\nMER 2 (Spirit)\n3\n2.6\n2003-06-10\n2010-05-03\n\n\nmessenger\nmess-e_v_h-spice-6-v1.0/messsp_1000\nMESSENGER\n3\n44.8\n2004-08-03\n2015-04-30\n\n\nmars2020\nmars2020/mars2020_spice\nMars 2020\n4\n0.6\n2020-07-30\n2023-08-31\n\n\nmex\nmex-e_m-spice-6-v2.0/mexsp_2000\nMars Express\n3\n10.6\n2003-06-02\n2023-08-31\n\n\nmgs\nmgs-m-spice-6-v1.0/mgsp_1000\nMars Global Surveyor\n3\n15.4\n1996-11-06\n2006-11-02\n\n\nody\nody-m-spice-6-v1.0/odsp_1000\nMars Odyssey\n3\n35.2\n2001-04-07\n2023-07-01\n\n\nmro\nmro-m-spice-6-v1.0/mrosp_1000\nMars Reconnaissance Orbiter\n3\n324.7\n2005-08-12\n2023-10-01\n\n\nmsl\nmsl-m-spice-6-v1.0/mslsp_1000\nMars Science Laboratory\n3\n0.6\n2011-11-26\n2023-07-29\n\n\nnear\nnear-a-spice-6-v1.0/nearsp_1000\nNEAR\n3\n2.4\n1996-05-30\n2001-02-28\n\n\nnh\nnh-j_p_ss-spice-6-v1.0/nhsp_1000\nNew Horizons\n3\n1.6\n2006-01-19\n2019-12-30\n\n\norex\norex/orex_spice\nOSIRIS-REx\n4\n424.7\n2016-09-08\n2023-10-02\n\n\nrosetta\nro_rl-e_m_a_c-spice-6-v1.0/rossp_1000\nRosetta\n3\n5.9\n2004-03-02\n2017-01-01\n\n\nstardust\nsdu-c-spice-6-v1.0/sdsp_1000\nStardust\n3\n1.9\n1999-02-07\n2011-05-01\n\n\nvenus_climate_orbiter\nvco/vco_spice\nVenus Climate Orbiter\n4\n1.9\n2010-05-21\n2023-01-01\n\n\nvex\nvex-e_v-spice-6-v2.0/vexsp_2000\nVenus Express\n3\n5.0\n2005-11-09\n2015-02-06\n\n\nvo\nvo1_vo2-m-spice-6-v1.0/vosp_1000\nViking Orbiter\n3\n0.1\n1976-06-16\n1980-07-30\n\n\n\n\n\n\n\n\n\nkernels.list_kernels_for_day('bc', '2019-01-01')\n\n['ck/bc_mmo_sc_cruise_v01.bc',\n 'ck/bc_mpo_magboom_v01.bc',\n 'ck/bc_mtm_sc_cruise_v01.bc',\n 'fk/bc_dsk_surfaces_v03.tf',\n 'fk/bc_mmo_v13.tf',\n 'fk/bc_mpo_v34.tf',\n 'fk/bc_mtm_v12.tf',\n 'fk/bc_sci_v12.tf',\n 'fk/earth_topo_201023.tf',\n 'fk/earthstns_jaxa_20230905.tf',\n 'fk/estrack_v04.tf',\n 'fk/rssd0002.tf',\n 'ik/bc_mmo_mppe_v04.ti',\n 'ik/bc_mmo_msasi_v03.ti',\n 'ik/bc_mpo_aux_v01.ti',\n 'ik/bc_mpo_bela_v09.ti',\n 'ik/bc_mpo_mertis_v08.ti',\n 'ik/bc_mpo_mgns_v02.ti',\n 'ik/bc_mpo_mixs_v06.ti',\n 'ik/bc_mpo_phebus_v06.ti',\n 'ik/bc_mpo_serena_v08.ti',\n 'ik/bc_mpo_simbio-sys_v10.ti',\n 'ik/bc_mpo_sixs_v08.ti',\n 'ik/bc_mpo_str_v02.ti',\n 'ik/bc_mtm_mcam_v05.ti',\n 'lsk/naif0012.tls',\n 'pck/earth_000101_231220_230927.bpc',\n 'pck/gm_de431.tpc',\n 'pck/pck00011_bc_v00.tpc',\n 'sclk/bc_mmo_fict_20170228.tsc',\n 'sclk/bc_mpo_fict_20181127.tsc',\n 'sclk/bc_mpo_step_20230917.tsc',\n 'spk/bc_mmo_cruise_v01.bsp',\n 'spk/bc_mmo_struct_v01.bsp',\n 'spk/bc_mpo_cog_v03.bsp',\n 'spk/bc_mpo_struct_v09.bsp',\n 'spk/bc_mtm_cruise_v01.bsp',\n 'spk/bc_mtm_struct_v06.bsp',\n 'spk/bc_sci_v02.bsp',\n 'spk/de432s.bsp',\n 'spk/earthstns_itrf93_201023.bsp',\n 'spk/earthstns_jaxa_20230905.bsp',\n 'spk/estrack_v04.bsp']\n\n\n\nmkpath = kernels.get_metakernel_and_files('msl', '2020-01-01', '2020-01-05')\n\n\n\n\nmsl_ra_toolsref_v1.bc: 0%| | 0/18432 [00:00<?, ?it/s]\nmsl_v08.tf: 0%| | 0/205622 [00:00<?, ?it/s]/325632 [00:00<?, ?it/s]\nmsl_surf_rsm_tlmenc_2579_2713_v1.bc: 0%| | 0/4276224 [00:00<?, ?it/s][A\nmsl_surf_hga_tlm_2579_2713_v1.bc: 0%| | 0/2271232 [00:00<?, ?it/s]\nmsl_ra_toolsref_v1.bc: 100%|██████████| 18.0k/18.0k [00:00<00:00, 118kB/s] it/s]\nmsl_surf_rsm_tlmenc_2579_2713_v1.bc: 0%| | 4.00k/4.08M [00:00<02:40, 26.6kB/s]\nmsl_surf_ra_tlmres_2579_2713_v1.bc: 0%| | 4.00k/1.86M [00:00<01:14, 26.0kB/s]\n\nmsl_surf_rover_tlm_2579_2713_v1.bc: 1%|▏ | 4.00k/318k [00:00<00:12, 25.1kB/s][A\nmsl_surf_rsm_tlmenc_2579_2713_v1.bc: 1%| | 36.0k/4.08M [00:00<00:31, 133kB/s] \nmsl_surf_ra_tlmres_2579_2713_v1.bc: 2%|▏ | 36.0k/1.86M [00:00<00:14, 132kB/s] \nmsl_surf_rover_tlm_2579_2713_v1.bc: 11%|█▏ | 36.0k/318k [00:00<00:02, 131kB/s] \nmsl_surf_rsm_tlmres_2579_2713_v1.bc: 1%| | 36.0k/3.56M [00:00<00:28, 131kB/s] \nmsl_surf_rsm_tlmenc_2579_2713_v1.bc: 2%|▏ | 100k/4.08M [00:00<00:16, 260kB/s] A\nmsl_surf_ra_tlmres_2579_2713_v1.bc: 5%|▌ | 100k/1.86M [00:00<00:07, 259kB/s] \nmsl_surf_rover_tlm_2579_2713_v1.bc: 31%|███▏ | 100k/318k [00:00<00:00, 258kB/s] \nmsl_surf_rsm_tlmres_2579_2713_v1.bc: 3%|▎ | 100k/3.56M [00:00<00:14, 258kB/s] \nmsl_v08.tf: 100%|██████████| 201k/201k [00:00<00:00, 398kB/s] [00:00<00:08, 257kB/s] \nmsl_surf_ra_tlmenc_2579_2713_v1.bc: 7%|▋ | 212k/3.13M [00:00<00:06, 440kB/s]]\nmsl_surf_ra_tlmres_2579_2713_v1.bc: 11%|█ | 212k/1.86M [00:00<00:03, 440kB/s]\nmsl_surf_rover_tlm_2579_2713_v1.bc: 62%|██████▏ | 196k/318k [00:00<00:00, 399kB/s]\nmsl_surf_rover_tlm_2579_2713_v1.bc: 100%|██████████| 318k/318k [00:00<00:00, 503kB/s]s]\n\nmsl_surf_rsm_tlmenc_2579_2713_v1.bc: 10%|█ | 436k/4.08M [00:00<00:04, 800kB/s]\nmsl_surf_ra_tlmres_2579_2713_v1.bc: 23%|██▎ | 436k/1.86M [00:00<00:01, 799kB/s]\nmsl_surf_rsm_tlmres_2579_2713_v1.bc: 12%|█▏ | 436k/3.56M [00:00<00:04, 798kB/s]\nmsl_hbra_20120731_c03.ti: 100%|██████████| 7.77k/7.77k [00:00<00:00, 15.7MB/s]6kB/s]\nmsl_surf_rsm_tlmenc_2579_2713_v1.bc: 21%|██ | 884k/4.08M [00:00<00:02, 1.51MB/s]\nmsl_surf_ra_tlmres_2579_2713_v1.bc: 46%|████▋ | 884k/1.86M [00:00<00:00, 1.50MB/s]\nmsl_surf_rsm_tlmres_2579_2713_v1.bc: 24%|██▍ | 884k/3.56M [00:00<00:01, 1.50MB/s]\nmsl_surf_rsm_tlmenc_2579_2713_v1.bc: 43%|████▎ | 1.74M/4.08M [00:01<00:00, 2.89MB/s]\nmsl_surf_ra_tlmres_2579_2713_v1.bc: 100%|██████████| 1.86M/1.86M [00:01<00:00, 1.74MB/s]\n\nmsl_surf_rsm_tlmres_2579_2713_v1.bc: 49%|████▉ | 1.74M/3.56M [00:01<00:00, 2.88MB/s]\nmsl_surf_hga_tlm_2579_2713_v1.bc: 100%|██████████| 2.17M/2.17M [00:01<00:00, 1.98MB/s]\nmsl_surf_ra_tlmenc_2579_2713_v1.bc: 100%|██████████| 3.13M/3.13M [00:01<00:00, 2.81MB/s]\nmsl_hflb_20120731_c03.ti: 100%|██████████| 7.77k/7.77k [00:00<00:00, 13.2MB/s]\nmsl_surf_rsm_tlmenc_2579_2713_v1.bc: 86%|████████▌ | 3.49M/4.08M [00:01<00:00, 5.62MB/s]\nmsl_surf_rsm_tlmres_2579_2713_v1.bc: 100%|██████████| 3.56M/3.56M [00:01<00:00, 2.91MB/s]\n\nmsl_aux_v00.ti: 100%|██████████| 11.3k/11.3k [00:00<00:00, 29.3MB/s]\nmsl_hfra_20120731_c03.ti: 100%|██████████| 7.77k/7.77k [00:00<00:00, 13.2MB/s]\nmsl_hblb_20120731_c03.ti: 100%|██████████| 7.76k/7.76k [00:00<00:00, 4.88MB/s]\nmsl_hbrb_20120731_c03.ti: 100%|██████████| 7.77k/7.77k [00:00<00:00, 14.4MB/s]\nmsl_hfla_20120731_c03.ti: 100%|██████████| 7.77k/7.77k [00:00<00:00, 14.0MB/s]\nmsl_mahli_20120731_c02.ti: 100%|██████████| 7.70k/7.70k [00:00<00:00, 14.0MB/s]\nmsl_chrmi_20120731_c03.ti: 100%|██████████| 7.38k/7.38k [00:00<00:00, 13.2MB/s]\nmsl_hbla_20120731_c03.ti: 100%|██████████| 7.76k/7.76k [00:00<00:00, 14.0MB/s]\nmsl_hfrb_20120731_c03.ti: 100%|██████████| 7.77k/7.77k [00:00<00:00, 13.9MB/s]\nmsl_nla_20120731_c04.ti: 100%|██████████| 7.70k/7.70k [00:00<00:00, 19.9MB/s]\nmsl_mardi_20120731_c02.ti: 100%|██████████| 7.62k/7.62k [00:00<00:00, 13.4MB/s]\nmsl_ml_20120731_c03.ti: 100%|██████████| 7.72k/7.72k [00:00<00:00, 15.9MB/s]\nmsl_mr_20120731_c03.ti: 100%|██████████| 7.72k/7.72k [00:00<00:00, 4.39MB/s]\nmsl_nra_20120731_c04.ti: 100%|██████████| 7.71k/7.71k [00:00<00:00, 14.6MB/s]\nmsl_nrb_20130530_c05.ti: 100%|██████████| 7.72k/7.72k [00:00<00:00, 13.9MB/s]\nmsl_struct_v01.ti: 100%|██████████| 10.3k/10.3k [00:00<00:00, 16.9MB/s]\nmsl_nlb_20130530_c05.ti: 100%|██████████| 7.72k/7.72k [00:00<00:00, 22.5MB/s]\nmsl_lmst_ops120808_v1.tsc: 100%|██████████| 5.80k/5.80k [00:00<00:00, 13.8MB/s]\nnaif0012.tls: 100%|██████████| 6.70k/6.70k [00:00<00:00, 9.87MB/s]\nmar085s.bsp: 0%| | 0/89539584 [00:00<?, ?it/s]0:00<?, ?it/s]\nmsl_ls_ops120808_iau2000_v1.bsp: 100%|██████████| 8.00k/8.00k [00:00<00:00, 15.9MB/s]\n\nmar085s.bsp: 0%| | 4.00k/85.4M [00:00<58:05, 25.7kB/s]<00:02, 25.6kB/s]\nmsl_76_sclkscet_refit_s8.tsc: 100%|██████████| 55.7k/55.7k [00:00<00:00, 178kB/s] \nmar085s.bsp: 0%| | 36.0k/85.4M [00:00<11:22, 131kB/s] \nmsl_surf_rover_loc_2224_2358_v1.bsp: 0%| | 0/256000 [00:00<?, ?it/s]\npck00008.tpc: 100%|██████████| 111k/111k [00:00<00:00, 236kB/s] 1kB/s] \nmar085s.bsp: 0%| | 84.0k/85.4M [00:00<07:02, 212kB/s]\nmsl_surf_rover_loc_2224_2358_v1.bsp: 2%|▏ | 4.00k/250k [00:00<00:09, 25.6kB/s]\nmsl_struct_v02.bsp: 100%|██████████| 102k/102k [00:00<00:00, 217kB/s] \nde425s.bsp: 1%| | 100k/8.84M [00:00<00:35, 259kB/s] \nmar085s.bsp: 0%| | 196k/85.4M [00:00<03:37, 411kB/s] [00:00<?, ?it/s]\nmsl_surf_rover_loc_2003_2127_v1.bsp: 0%| | 0/344064 [00:00<?, ?it/s]131kB/s] \nmar085s.bsp: 0%| | 420k/85.4M [00:00<01:54, 780kB/s]9M [00:00<01:45, 25.7kB/s]\nmsl_surf_rover_loc_2003_2127_v1.bsp: 1%| | 4.00k/336k [00:00<00:13, 25.7kB/s][A\nmsl_surf_rover_loc_0000_2003_v1.bsp: 1%|▏ | 36.0k/2.59M [00:00<00:20, 131kB/s] \nmar085s.bsp: 1%| | 852k/85.4M [00:00<01:00, 1.45MB/s]00:00<?, ?it/s]\nmsl_surf_rover_loc_2224_2358_v1.bsp: 100%|██████████| 250k/250k [00:00<00:00, 399kB/s] \nmsl_surf_rover_loc_2003_2127_v1.bsp: 11%|█ | 36.0k/336k [00:00<00:02, 131kB/s] \nmsl_surf_rover_loc_0000_2003_v1.bsp: 3%|▎ | 84.0k/2.59M [00:00<00:12, 212kB/s]\nmsl_surf_rover_loc_2003_2127_v1.bsp: 25%|██▌ | 84.0k/336k [00:00<00:01, 211kB/s]]\nmsl_surf_rover_loc_2837_2934_v1.bsp: 0%| | 0/225280 [00:00<?, ?it/s]\nmsl_surf_rover_loc_0000_2003_v1.bsp: 7%|▋ | 180k/2.59M [00:00<00:06, 371kB/s] \nmsl_surf_rover_loc_2003_2127_v1.bsp: 49%|████▉ | 164k/336k [00:00<00:00, 330kB/s] ]\nmsl_surf_rover_loc_2837_2934_v1.bsp: 2%|▏ | 4.00k/220k [00:00<00:08, 25.3kB/s]\nmsl_surf_rover_loc_2003_2127_v1.bsp: 100%|██████████| 336k/336k [00:00<00:00, 524kB/s]]\n\nde425s.bsp: 72%|███████▏ | 6.36M/8.84M [00:01<00:00, 9.82MB/s] [00:00<00:01, 131kB/s] [A\nmsl_surf_rover_loc_2837_2934_v1.bsp: 16%|█▋ | 36.0k/220k [00:00<00:01, 130kB/s] \nmsl_surf_rover_loc_0000_2003_v1.bsp: 29%|██▉ | 772k/2.59M [00:00<00:01, 1.32MB/s]\nmsl_surf_rover_loc_2579_2713_v1.bsp: 100%|██████████| 294k/294k [00:00<00:00, 468kB/s] \nde425s.bsp: 100%|██████████| 8.84M/8.84M [00:01<00:00, 6.16MB/s] [00:00<00:00, 211kB/s]\nmar085s.bsp: 14%|█▎ | 11.6M/85.4M [00:01<00:05, 15.1MB/s]0:00<?, ?it/s]\nmsl_surf_rover_loc_2837_2934_v1.bsp: 38%|███▊ | 84.0k/220k [00:00<00:00, 211kB/s]\nmsl_surf_rover_loc_2127_2224_v1.bsp: 100%|██████████| 206k/206k [00:00<00:00, 329kB/s] s]\nmsl_surf_rover_loc_0000_2003_v1.bsp: 100%|██████████| 2.59M/2.59M [00:01<00:00, 2.29MB/s]\nmsl_surf_rover_loc_2358_2482_v1.bsp: 1%|▏ | 4.00k/270k [00:00<00:10, 25.8kB/s]\nmsl_surf_rover_loc_2837_2934_v1.bsp: 100%|██████████| 220k/220k [00:00<00:00, 350kB/s] \nmsl_surf_rover_loc_2713_2837_v1.bsp: 1%| | 4.00k/333k [00:00<00:13, 25.6kB/s]\nmsl_surf_rover_loc_3192_3289_v1.bsp: 0%| | 0/313344 [00:00<?, ?it/s]\nmsl_surf_rover_loc_2358_2482_v1.bsp: 100%|██████████| 270k/270k [00:00<00:00, 431kB/s] \nmar085s.bsp: 29%|██▉ | 24.9M/85.4M [00:02<00:03, 19.0MB/s][00:00<00:02, 131kB/s] \nmsl_surf_rover_loc_2934_3068_v1.bsp: 0%| | 0/423936 [00:00<?, ?it/s]25.4kB/s]\nmsl_surf_rover_loc_3068_3192_v1.bsp: 1%| | 4.00k/355k [00:00<00:14, 25.6kB/s]\nmar085s.bsp: 31%|███ | 26.1M/85.4M [00:02<00:03, 17.0MB/s]0:00<?, ?it/s]\nmsl_surf_rover_loc_2713_2837_v1.bsp: 25%|██▌ | 84.0k/333k [00:00<00:01, 211kB/s]\nmsl_surf_rover_loc_2934_3068_v1.bsp: 1%| | 4.00k/414k [00:00<00:16, 25.7kB/s]\nmsl_surf_rover_loc_3068_3192_v1.bsp: 10%|█ | 36.0k/355k [00:00<00:02, 131kB/s] \nmar085s.bsp: 33%|███▎ | 28.5M/85.4M [00:02<00:03, 18.7MB/s][00:00<00:08, 25.7kB/s]\nmsl_surf_rover_loc_2713_2837_v1.bsp: 100%|██████████| 333k/333k [00:00<00:00, 527kB/s] ]\n\nmsl_surf_rover_loc_2934_3068_v1.bsp: 9%|▊ | 36.0k/414k [00:00<00:02, 131kB/s] [A\nmsl_surf_rover_loc_3068_3192_v1.bsp: 28%|██▊ | 100k/355k [00:00<00:01, 258kB/s] \nmar085s.bsp: 37%|███▋ | 31.8M/85.4M [00:02<00:03, 17.1MB/s][00:00<00:01, 131kB/s] \nmsl_surf_rover_loc_3547_3644_v1.bsp: 11%|█▏ | 36.0k/314k [00:00<00:02, 131kB/s] \nmsl_surf_rover_loc_3192_3289_v1.bsp: 100%|██████████| 306k/306k [00:00<00:00, 485kB/s] \nmsl_surf_rover_loc_2934_3068_v1.bsp: 20%|██ | 84.0k/414k [00:00<00:01, 211kB/s]\nmsl_surf_rover_loc_3068_3192_v1.bsp: 100%|██████████| 355k/355k [00:00<00:00, 565kB/s]\n\nmsl_surf_rover_loc_3423_3547_v1.bsp: 0%| | 0/391168 [00:00<?, ?it/s]212kB/s]\nmsl_surf_rover_loc_2934_3068_v1.bsp: 43%|████▎ | 180k/414k [00:00<00:00, 371kB/s] \nmsl_surf_rover_loc_2482_2579_v1.bsp: 100%|██████████| 208k/208k [00:00<00:00, 332kB/s] \nmsl_surf_rover_loc_3423_3547_v1.bsp: 1%| | 4.00k/382k [00:00<00:15, 25.7kB/s]\nmsl_surf_rover_loc_3547_3644_v1.bsp: 100%|██████████| 314k/314k [00:00<00:00, 501kB/s] \nmsl_surf_rover_loc_2934_3068_v1.bsp: 100%|██████████| 414k/414k [00:00<00:00, 529kB/s]\nmsl_surf_rover_loc_3423_3547_v1.bsp: 100%|██████████| 382k/382k [00:00<00:00, 606kB/s] ]\nmsl_surf_rover_loc_3289_3423_v1.bsp: 10%|█ | 36.0k/356k [00:00<00:02, 131kB/s] \nmar085s.bsp: 57%|█████▋ | 48.5M/85.4M [00:03<00:02, 16.5MB/s]0:00<?, ?it/s]\nmsl_surf_rover_loc_3289_3423_v1.bsp: 24%|██▎ | 84.0k/356k [00:00<00:01, 212kB/s]\nmsl_surf_rover_loc_3778_3902_v1.bsp: 1%| | 4.00k/354k [00:00<00:13, 25.7kB/s]\nmsl_surf_rover_loc_3289_3423_v1.bsp: 100%|██████████| 356k/356k [00:00<00:00, 566kB/s] ]\n\nmar085s.bsp: 64%|██████▎ | 54.3M/85.4M [00:04<00:01, 16.9MB/s][00:00<00:02, 131kB/s] \nmar085s.bsp: 67%|██████▋ | 56.8M/85.4M [00:04<00:01, 19.1MB/s][00:00<00:02, 131kB/s] \nmsl_surf_rover_loc_3778_3902_v1.bsp: 24%|██▎ | 84.0k/354k [00:00<00:01, 211kB/s]\nmar085s.bsp: 69%|██████▉ | 58.9M/85.4M [00:04<00:01, 20.0MB/s][00:00<00:01, 210kB/s]\nmar085s.bsp: 70%|███████ | 59.8M/85.4M [00:04<00:01, 16.5MB/s]00:00<00:00, 371kB/s] \nmsl_surf_rover_loc_3778_3902_v1.bsp: 100%|██████████| 354k/354k [00:00<00:00, 557kB/s] \nmar085s.bsp: 73%|███████▎ | 62.7M/85.4M [00:04<00:01, 19.6MB/s]\nmsl_surf_rover_loc_3644_3778_v1.bsp: 100%|██████████| 363k/363k [00:00<00:00, 462kB/s]\nmar085s.bsp: 100%|██████████| 85.4M/85.4M [00:05<00:00, 15.3MB/s]\n\n\n\nimport spiceypy as spice\n\n\nspice.furnsh(str(mkpath))\n\n\nmkpath\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/spice_kernels/msl/msl_v34_200101_200105.tm')\n\n\n\n!cat {mkpath}\n\nKPL/MK\n\n This meta-kernel lists a subset of kernels from the meta-kernel\n msl_v34.tm provided in the MSL-M-SPICE-6-V1.0 SPICE PDS3 archive,\n covering the whole or a part of the customer requested time period\n from 2020-01-01T00:00:00.000 to 2020-01-05T00:00:00.000.\n\n The documentation describing these kernels can be found in the\n complete MSL-M-SPICE-6-V1.0 SPICE PDS3 archive available at this URL\n\n https://naif.jpl.nasa.gov/pub/naif/pds/data/msl-m-spice-6-v1.0/mslsp_1000\n\n To use this meta-kernel users may need to modify the value of the\n PATH_VALUES keyword to point to the actual location of the archive's\n ``data'' directory on their system. Replacing ``/'' with ``\\''\n and converting line terminators to the format native to the user's\n system may also be required if this meta-kernel is to be used on a\n non-UNIX workstation.\n\n This meta-kernel was created by the NAIF node's SPICE PDS archive\n subsetting service version 2.1 on Fri Dec 1 09:03:32 PST 2023.\n\n \n \\begindata\n \n PATH_VALUES = (\n '/home/ayek72/mnt/slowdata/planetarypy/spice_kernels/msl'\n )\n \n PATH_SYMBOLS = (\n 'KERNELS'\n )\n \n KERNELS_TO_LOAD = (\n '$KERNELS/lsk/naif0012.tls'\n '$KERNELS/pck/pck00008.tpc'\n '$KERNELS/sclk/msl_lmst_ops120808_v1.tsc'\n '$KERNELS/sclk/msl_76_sclkscet_refit_s8.tsc'\n '$KERNELS/fk/msl_v08.tf'\n '$KERNELS/ik/msl_aux_v00.ti'\n '$KERNELS/ik/msl_chrmi_20120731_c03.ti'\n '$KERNELS/ik/msl_hbla_20120731_c03.ti'\n '$KERNELS/ik/msl_hblb_20120731_c03.ti'\n '$KERNELS/ik/msl_hbra_20120731_c03.ti'\n '$KERNELS/ik/msl_hbrb_20120731_c03.ti'\n '$KERNELS/ik/msl_hfla_20120731_c03.ti'\n '$KERNELS/ik/msl_hflb_20120731_c03.ti'\n '$KERNELS/ik/msl_hfra_20120731_c03.ti'\n '$KERNELS/ik/msl_hfrb_20120731_c03.ti'\n '$KERNELS/ik/msl_mahli_20120731_c02.ti'\n '$KERNELS/ik/msl_mardi_20120731_c02.ti'\n '$KERNELS/ik/msl_ml_20120731_c03.ti'\n '$KERNELS/ik/msl_mr_20120731_c03.ti'\n '$KERNELS/ik/msl_nla_20120731_c04.ti'\n '$KERNELS/ik/msl_nlb_20130530_c05.ti'\n '$KERNELS/ik/msl_nra_20120731_c04.ti'\n '$KERNELS/ik/msl_nrb_20130530_c05.ti'\n '$KERNELS/ik/msl_struct_v01.ti'\n '$KERNELS/spk/msl_struct_v02.bsp'\n '$KERNELS/spk/de425s.bsp'\n '$KERNELS/spk/mar085s.bsp'\n '$KERNELS/spk/msl_ls_ops120808_iau2000_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_0000_2003_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_2003_2127_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_2127_2224_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_2224_2358_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_2358_2482_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_2482_2579_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_2579_2713_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_2713_2837_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_2837_2934_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_2934_3068_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_3068_3192_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_3192_3289_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_3289_3423_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_3423_3547_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_3547_3644_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_3644_3778_v1.bsp'\n '$KERNELS/spk/msl_surf_rover_loc_3778_3902_v1.bsp'\n '$KERNELS/ck/msl_ra_toolsref_v1.bc'\n '$KERNELS/ck/msl_surf_hga_tlm_2579_2713_v1.bc'\n '$KERNELS/ck/msl_surf_ra_tlmenc_2579_2713_v1.bc'\n '$KERNELS/ck/msl_surf_ra_tlmres_2579_2713_v1.bc'\n '$KERNELS/ck/msl_surf_rover_tlm_2579_2713_v1.bc'\n '$KERNELS/ck/msl_surf_rsm_tlmenc_2579_2713_v1.bc'\n '$KERNELS/ck/msl_surf_rsm_tlmres_2579_2713_v1.bc'\n )\n \n \\begintext", + "crumbs": [ + "tutorials", + "Demo of PlanetaryPy" + ] + }, + { + "objectID": "tutorials/pdw_2023.html", + "href": "tutorials/pdw_2023.html", + "title": "On the way to a core PlanetaryPy Package", + "section": "", + "text": "PlanetaryPy organization is community effort to\n\ndevelop a core Python package for planetary science\nhelp other planetary science Python programmers to disseminate their work\n\nThis talk is about the core package status only.", + "crumbs": [ + "tutorials", + "On the way to a core PlanetaryPy Package" + ] + }, + { + "objectID": "tutorials/pdw_2023.html#what-is-this", + "href": "tutorials/pdw_2023.html#what-is-this", + "title": "On the way to a core PlanetaryPy Package", + "section": "", + "text": "PlanetaryPy organization is community effort to\n\ndevelop a core Python package for planetary science\nhelp other planetary science Python programmers to disseminate their work\n\nThis talk is about the core package status only.", + "crumbs": [ + "tutorials", + "On the way to a core PlanetaryPy Package" + ] + }, + { + "objectID": "tutorials/pdw_2023.html#core-package-work-plan", + "href": "tutorials/pdw_2023.html#core-package-work-plan", + "title": "On the way to a core PlanetaryPy Package", + "section": "Core package work plan", + "text": "Core package work plan\n\nI am since long working on a core package draft.\nNothing is especially clever, the structured unification is the clue!\nShall be submitted (done?) to the community members for review.\nAfter successful review open for public pull requests and hackathons.", + "crumbs": [ + "tutorials", + "On the way to a core PlanetaryPy Package" + ] + }, + { + "objectID": "tutorials/pdw_2023.html#core-package-focal-points", + "href": "tutorials/pdw_2023.html#core-package-focal-points", + "title": "On the way to a core PlanetaryPy Package", + "section": "Core package focal points", + "text": "Core package focal points\n\nEasier access, download, and local management of\n\nPDS data\nSPICE kernels\n\nRemoving need to learn various web interfaces for different data\nWorking easier with collections of PDS data\nEasy basic SPICE calculations with human readable I/F\nSome web and time related utilities", + "crumbs": [ + "tutorials", + "On the way to a core PlanetaryPy Package" + ] + }, + { + "objectID": "tutorials/pdw_2023.html#pds-indexes-1", + "href": "tutorials/pdw_2023.html#pds-indexes-1", + "title": "On the way to a core PlanetaryPy Package", + "section": "PDS Indexes", + "text": "PDS Indexes\n\n\n\nPDS Indexes contain useful meta-data for PDS datasets\nplanetarypy provides access to these via a config file\n\npull requests to config file will add more findable indices!\n\nconfig file tells planetarypy where to find index\n\n\n\nplanetarypy downloads index file and\nstored as parquet file, ready for pandas based analysis.\ntells user when new index is available", + "crumbs": [ + "tutorials", + "On the way to a core PlanetaryPy Package" + ] + }, + { + "objectID": "tutorials/pdw_2023.html#example-use", + "href": "tutorials/pdw_2023.html#example-use", + "title": "On the way to a core PlanetaryPy Package", + "section": "Example use", + "text": "Example use\n\nfrom planetarypy.pds.apps import get_index\n\ndf = get_index(\"cassini.iss\", \"index\")\nprint(df.info())\ndf.head(3)[\"FILE_NAME IMAGE_MID_TIME IMAGE_OBSERVATION_TYPE\".split()]\n\n<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 407299 entries, 0 to 407298\nColumns: 140 entries, FILE_NAME to STANDARD_DATA_PRODUCT_ID\ndtypes: Float64(70), Int64(20), datetime64[ns](7), string(43)\nmemory usage: 470.0 MB\nNone\n\n\n\n\n\n\n\n\n\n\nFILE_NAME\nIMAGE_MID_TIME\nIMAGE_OBSERVATION_TYPE\n\n\n\n\n0\nN1454725799_1.IMG\n2004-02-06 02:07:06.458\nOPNAV\n\n\n1\nN1454726579_1.IMG\n2004-02-06 02:20:06.362\nOPNAV\n\n\n2\nN1454727359_1.IMG\n2004-02-06 02:33:06.397\nOPNAV", + "crumbs": [ + "tutorials", + "On the way to a core PlanetaryPy Package" + ] + }, + { + "objectID": "tutorials/pdw_2023.html#instrument-data-1", + "href": "tutorials/pdw_2023.html#instrument-data-1", + "title": "On the way to a core PlanetaryPy Package", + "section": "Instrument data", + "text": "Instrument data\n\nMeant to serve as basic data access, read, and access classes\n\nto be boosted in the future by the GOAT PDS reader pdr by Million, Inc.\n\nconfig file controls what data levels are accessible\n\nand how they are stored locally\n\ncurrently CTX, HiRISE, UVIS, CISS are supported (Diviner in the works)", + "crumbs": [ + "tutorials", + "On the way to a core PlanetaryPy Package" + ] + }, + { + "objectID": "tutorials/pdw_2023.html#example-use-hirise", + "href": "tutorials/pdw_2023.html#example-use-hirise", + "title": "On the way to a core PlanetaryPy Package", + "section": "Example use HiRISE", + "text": "Example use HiRISE\n\nfrom planetarypy.hirise import ProductPathfinder as PPF\n\nppf = PPF(\"PSP_003092_0985_RED\")\n\nprint(ppf.jp2_path)\nprint(ppf.homepage)\nprint(ppf.abrowse_path)\nprint(ppf.nomap_thumbnail_path)\n\n\n\n\n\n\n\n\n\n\nRDR/PSP/ORB_003000_003099/PSP_003092_0985/PSP_003092_0985_RED.JP2\nhttps://uahirise.org/PSP_003092_0985\nEXTRAS/RDR/PSP/ORB_003000_003099/PSP_003092_0985/PSP_003092_0985_RED.abrowse.jpg\nEXTRAS/RDR/PSP/ORB_003000_003099/PSP_003092_0985/PSP_003092_0985_RED.NOMAP.thumb.jpg", + "crumbs": [ + "tutorials", + "On the way to a core PlanetaryPy Package" + ] + }, + { + "objectID": "tutorials/pdw_2023.html#example-use-ctxcollection", + "href": "tutorials/pdw_2023.html#example-use-ctxcollection", + "title": "On the way to a core PlanetaryPy Package", + "section": "Example use CTXCollection", + "text": "Example use CTXCollection\n\nfrom planetarypy.ctx import CTXCollection\n\ncoll = CTXCollection.by_month(\"F01\")\nprint(coll.n_items)\nprint(len(coll.get_corrupted()))\n\n1321\n35", + "crumbs": [ + "tutorials", + "On the way to a core PlanetaryPy Package" + ] + }, + { + "objectID": "tutorials/pdw_2023.html#archived-spice-kernel-sets", + "href": "tutorials/pdw_2023.html#archived-spice-kernel-sets", + "title": "On the way to a core PlanetaryPy Package", + "section": "Archived SPICE kernel sets", + "text": "Archived SPICE kernel sets\n\n\n\nNAIF offers archived mission kernel sets for 33 missions:\nKernels can be subset by time window using Subset link.\nplanetarypy offers programmatic wrapper around subset feature.\n\n\n\nZip file unpacked.\nKernel files stored locally and logically.\nMeta-kernel edited appropriately and immediately loadable.", + "crumbs": [ + "tutorials", + "On the way to a core PlanetaryPy Package" + ] + }, + { + "objectID": "tutorials/pdw_2023.html#example-use-1", + "href": "tutorials/pdw_2023.html#example-use-1", + "title": "On the way to a core PlanetaryPy Package", + "section": "Example use", + "text": "Example use\n\nfrom planetarypy.spice import kernels\n\nkernels.datasets.drop(\"path\", axis=1).head()\n\n\n\n\n\n\n\n\n\nMission Name\nPDS3 or PDS4\nData Size (GB)\nStart Time\nStop Time\n\n\nshorthand\n\n\n\n\n\n\n\n\n\nbc\nBepiColombo\n4\n2.3\n2018-10-20\n2023-06-21\n\n\ncassini\nCassini Orbiter\n3\n62.5\n1997-10-15\n2017-09-15\n\n\nclementine\nClementine\n3\n0.8\n1994-01-26\n1994-05-07\n\n\ndart\nDART\n4\n10.0\n2021-11-09\n2050-01-01\n\n\ndawn\nDAWN\n3\n86.4\n2007-09-27\n2018-10-31\n\n\n\n\n\n\n\n\n\nTwo main user functions:\n\nget_metakernel_and_files\n\nwill check if the kernel files are already locally available\nif not, download kernels\nreturns the path to the edited meta-kernel\n\nlist_kernels_for_day\n\nwill only list kernel filenames valid for the given day", + "crumbs": [ + "tutorials", + "On the way to a core PlanetaryPy Package" + ] + }, + { + "objectID": "tutorials/pdw_2023.html#generic-kernels", + "href": "tutorials/pdw_2023.html#generic-kernels", + "title": "On the way to a core PlanetaryPy Package", + "section": "Generic kernels", + "text": "Generic kernels\n\nManages a minimal set for basic illumination calculations\nCurrently slightly biased for Mars but many other bodies work\nKernels are automatically downloaded and loaded when needed.", + "crumbs": [ + "tutorials", + "On the way to a core PlanetaryPy Package" + ] + }, + { + "objectID": "tutorials/pdw_2023.html#example-use-2", + "href": "tutorials/pdw_2023.html#example-use-2", + "title": "On the way to a core PlanetaryPy Package", + "section": "Example use", + "text": "Example use\n\nfrom planetarypy.spice.spicer import MoonSpicer\n\nmoon = MoonSpicer(\"2022-02-22\")\nprint(f\"Sol. const: {moon.solar_constant:.1f}\")\nmoon.set_spoint_by(lat=0, lon=0)\nmoon.aspect = 180\nmoon.tilt = 30\nprint(f\"Irradiance on tilted surface element: {moon.F_tilt:.1f}\")\n\nSol. const: 1388.4 W / m2\nIrradiance on tilted surface element: 412.5 W / m2", + "crumbs": [ + "tutorials", + "On the way to a core PlanetaryPy Package" + ] + }, + { + "objectID": "tutorials/spice_howtos.html", + "href": "tutorials/spice_howtos.html", + "title": "SPICE with planetarypy HOWTO", + "section": "", + "text": "from astropy import units as u\nfrom numpy.linalg import norm\n\nfrom planetarypy.spice.spicer import MoonSpicer, MarsSpicer\n\n\nmoon = MoonSpicer(\"2022-02-22\")\n\n\nmoon.time.isoformat()\n\n'2022-02-22T00:00:00'\n\n\n\nmoon.solar_constant\n\n\\(1388.4482 \\; \\mathrm{\\frac{W}{m^{2}}}\\)\n\n\n\nmoon.set_spoint_by(lat=0, lon=0)\n\n\nmoon.aspect = 180\nmoon.tilt = 30\n\n\nmoon.F_flat\n\n\\(497.68762 \\; \\mathrm{\\frac{W}{m^{2}}}\\)\n\n\n\nmoon.F_aspect\n\n\\(449.48514 \\; \\mathrm{\\frac{W}{m^{2}}}\\)\n\n\n\nmoon.F_tilt\n\n\\(412.53511 \\; \\mathrm{\\frac{W}{m^{2}}}\\)\n\n\n\nmoon.subsolar\n\narray([ 622.78676959, -1621.28270346, -46.23629622])\n\n\n\nmoon.local_soltime\n\n'16:35:58'\n\n\n\n# MoonSpicer returns km (as all calculations in SPICE do)\n# use astropy.units to convert to other values\nnorm(moon.body_to_object(\"EARTH\")[0]) * u.km\n\n\\(375365.92 \\; \\mathrm{km}\\)\n\n\n\n(norm(moon.body_to_object(\"MARS\")[0]) * u.km).to(u.AU)\n\n\\(2.0379563 \\; \\mathrm{AU}\\)\n\n\n\nmars = MarsSpicer()\n\n\nmars.utc\n\n'2023-06-27T18:37:50.876055'\n\n\n\nmars.l_s\n\n83.31658188802474\n\n\n\nmars.goto('inca')\n\n\nmars.spoint\n\n(220.09830399469547, -440.60853011059214, -3340.5081261541495)\n\n\n\nmars.aspect=180\nmars.tilt=30\n\n\nmars.F_flat\n\n\\(0 \\; \\mathrm{\\frac{W}{m^{2}}}\\)\n\n\n\nmars.F_aspect\n\n\\(0 \\; \\mathrm{\\frac{W}{m^{2}}}\\)\n\n\n\nmars.set_spoint_by(lat=0, lon=0)\n\n\nmars.F_flat\n\n\\(339.2043 \\; \\mathrm{\\frac{W}{m^{2}}}\\)\n\n\n\nmars.F_tilt\n\n\\(397.92501 \\; \\mathrm{\\frac{W}{m^{2}}}\\)", + "crumbs": [ + "tutorials", + "SPICE with `planetarypy` HOWTO" + ] + }, + { + "objectID": "tutorials/spice_howtos.html#surface-calculations-on-the-moon", + "href": "tutorials/spice_howtos.html#surface-calculations-on-the-moon", + "title": "SPICE with planetarypy HOWTO", + "section": "", + "text": "from astropy import units as u\nfrom numpy.linalg import norm\n\nfrom planetarypy.spice.spicer import MoonSpicer, MarsSpicer\n\n\nmoon = MoonSpicer(\"2022-02-22\")\n\n\nmoon.time.isoformat()\n\n'2022-02-22T00:00:00'\n\n\n\nmoon.solar_constant\n\n\\(1388.4482 \\; \\mathrm{\\frac{W}{m^{2}}}\\)\n\n\n\nmoon.set_spoint_by(lat=0, lon=0)\n\n\nmoon.aspect = 180\nmoon.tilt = 30\n\n\nmoon.F_flat\n\n\\(497.68762 \\; \\mathrm{\\frac{W}{m^{2}}}\\)\n\n\n\nmoon.F_aspect\n\n\\(449.48514 \\; \\mathrm{\\frac{W}{m^{2}}}\\)\n\n\n\nmoon.F_tilt\n\n\\(412.53511 \\; \\mathrm{\\frac{W}{m^{2}}}\\)\n\n\n\nmoon.subsolar\n\narray([ 622.78676959, -1621.28270346, -46.23629622])\n\n\n\nmoon.local_soltime\n\n'16:35:58'\n\n\n\n# MoonSpicer returns km (as all calculations in SPICE do)\n# use astropy.units to convert to other values\nnorm(moon.body_to_object(\"EARTH\")[0]) * u.km\n\n\\(375365.92 \\; \\mathrm{km}\\)\n\n\n\n(norm(moon.body_to_object(\"MARS\")[0]) * u.km).to(u.AU)\n\n\\(2.0379563 \\; \\mathrm{AU}\\)\n\n\n\nmars = MarsSpicer()\n\n\nmars.utc\n\n'2023-06-27T18:37:50.876055'\n\n\n\nmars.l_s\n\n83.31658188802474\n\n\n\nmars.goto('inca')\n\n\nmars.spoint\n\n(220.09830399469547, -440.60853011059214, -3340.5081261541495)\n\n\n\nmars.aspect=180\nmars.tilt=30\n\n\nmars.F_flat\n\n\\(0 \\; \\mathrm{\\frac{W}{m^{2}}}\\)\n\n\n\nmars.F_aspect\n\n\\(0 \\; \\mathrm{\\frac{W}{m^{2}}}\\)\n\n\n\nmars.set_spoint_by(lat=0, lon=0)\n\n\nmars.F_flat\n\n\\(339.2043 \\; \\mathrm{\\frac{W}{m^{2}}}\\)\n\n\n\nmars.F_tilt\n\n\\(397.92501 \\; \\mathrm{\\frac{W}{m^{2}}}\\)", + "crumbs": [ + "tutorials", + "SPICE with `planetarypy` HOWTO" + ] + }, + { + "objectID": "api/diviner.html", + "href": "api/diviner.html", + "title": "Diviner", + "section": "", + "text": "source\n\nDataManager\n\n DataManager (tstr)\n\nInitialize self. See help(type(self)) for accurate signature.\n\ndm = DataManager(\"2010010110\")\n\n\ndm.local_path\n\n\nsource\n\n\nread_l1a_data\n\n read_l1a_data (fname, nrows=None)\n\n\nsource\n\n\nL1AHeader\n\n L1AHeader ()\n\nInitialize self. See help(type(self)) for accurate signature.\n\nsource\n\n\nparse_header_line\n\n parse_header_line (line)\n\nParse header lines.\n\n\n\ns = ’ a b c ’ parse_header_line(s) [‘a’, ‘b’, ‘c’] s = ’ a, b , c ’ parse_header_line(s) [‘a’, ‘b’, ‘c’]\n\n\n\n\ndm = DataManager(\"2010010110\")\n\n\ndm.download()\n\n\ndm.volume\n\n\ndm.url\n\n\ndf = pd.read_csv(\n dm.local_path,\n comment=\"#\",\n # names=L1AHeader.columns,\n na_values=\"-9999\",\n skipinitialspace=True,\n)\ndf.head()\n\n\npd.set_option(\"display.max_columns\", 200)\n\n\ndf.index\n\n\ndm.local_path\n\n\nsource\n\n\nget_data_path\n\n get_data_path (tstr)\n\n\nget_data_path(\"2017010110\")", + "crumbs": [ + "api", + "Diviner" + ] + }, + { + "objectID": "api/ctx.html", + "href": "api/ctx.html", + "title": "CTX", + "section": "", + "text": "import pandas as pd\n\npd.set_option(\"display.max_columns\", 1000)\nsource", + "crumbs": [ + "api", + "CTX" + ] + }, + { + "objectID": "api/ctx.html#command-line-interfaces", + "href": "api/ctx.html#command-line-interfaces", + "title": "CTX", + "section": "Command line interfaces", + "text": "Command line interfaces\n\nsource\n\nctx_calib\n\n ctx_calib (pid:str, source:str='', proc_root:str='',\n overwrite:bool=False)\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\npid\nstr\n\nCTX product_id\n\n\nsource\nstr\n\npath to where EDRs are stored if not from plpy\n\n\nproc_root\nstr\n\npath to where processed data is to be stored\n\n\noverwrite\nbool\nFalse\noverwrite processed data\n\n\n\n\nctx_calib(pid, overwrite=True)\n\n\nfrom nbdev import nbdev_export\n\nnbdev_export()", + "crumbs": [ + "api", + "CTX" + ] + }, + { + "objectID": "api/pds.crism_index.html", + "href": "api/pds.crism_index.html", + "title": "CRISM PDS Index", + "section": "", + "text": "url = URL(\"https://pds-geosciences.wustl.edu/mro/mro-m-crism-5-rdr-mptargeted-v1/mrocr_4001/index/mtrdr0705_index.lbl\")\n\n\nsource\n\nMTRDRIndex\n\n MTRDRIndex (url)\n\nIndex manager class.\nThis class manages one index, identified by a dotted key, e.g. cassini.iss.ring_summary\n\nindex = MTRDRIndex(url=url)\n\n\nindex.download()\n\n\n\n\n\n\n\nDownloaded /home/ayek72/mnt/slowdata/planetarypy/missions/mro/crism/indexes/mtrdr/mtrdr0705_index.lbl and /home/ayek72/mnt/slowdata/planetarypy/missions/mro/crism/indexes/mtrdr/mtrdr0705_index.tab\nDone.\n\n\n\nindex.convert_to_parquet()\n\nDone.\n\n\n\nindex.parquet\n\n\n\n\n\n\n\n\n\nVOLUME_ID\nPRODUCT_ID\nPRODUCT_TYPE\nFILE_SPECIFICATION_NAME\nPARTICIPATING_INSTRUMENTS\nPRODUCT_CREATION_TIME\nSTART_TIME\nSTOP_TIME\nSPACECRAFT_CLOCK_START_COUNT\nSPACECRAFT_CLOCK_STOP_COUNT\n...\nWESTERNMOST_LONGITUDE\nEASTERNMOST_LONGITUDE\nLOWER_RIGHT_LATITUDE\nLOWER_RIGHT_LONGITUDE\nLOWER_LEFT_LATITUDE\nLOWER_LEFT_LONGITUDE\nUPPER_RIGHT_LATITUDE\nUPPER_RIGHT_LONGITUDE\nUPPER_LEFT_LATITUDE\nUPPER_LEFT_LONGITUDE\n\n\n\n\n0\nMROCR_4001\nFRT00005F0C_07_IF163J_MTR3\nMPTARGETED_RDR\nMTRDR/2007/2007_148/FRT00005F0C/FRT00005F0C_07...\n<NA>\n2015-06-12 09:00:20\n2007-05-28 17:30:38.605\n2007-05-28 17:32:22.339\n2/0864840658.00225\n2/0864840761.48344\n...\n52.8\n53.267\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n\n\n1\nMROCR_4001\nFRT00005F0C_07_WV163J_MTR3\nMPTARGETED_RDR\nMTRDR/2007/2007_148/FRT00005F0C/FRT00005F0C_07...\n<NA>\n2015-06-12 09:00:20\n2007-05-28 17:30:38.605\n2007-05-28 17:32:22.339\n2/0864840658.00225\n2/0864840761.48344\n...\n-999.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n\n\n2\nMROCR_4001\nFRT00005F0C_07_IN163J_MTR3\nMPTARGETED_RDR\nMTRDR/2007/2007_148/FRT00005F0C/FRT00005F0C_07...\n<NA>\n2015-06-12 09:04:09\n2007-05-28 17:30:38.605\n2007-05-28 17:32:22.339\n2/0864840658.00225\n2/0864840761.48344\n...\n52.8\n53.267\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n\n\n3\nMROCR_4001\nFRT00005F0C_07_DE163L_MTR1\nMAP_PROJECTED_DDR\nMTRDR/2007/2007_148/FRT00005F0C/FRT00005F0C_07...\n<NA>\n2015-06-12 09:04:03\n2007-05-28 17:30:38.605\n2007-05-28 17:32:22.339\n2/864840658:225\n2/864840761:48344\n...\n52.8\n53.267\n-62.71\n53.27\n-62.76\n52.84\n-62.59\n53.23\n-62.6\n52.8\n\n\n4\nMROCR_4001\nFRT00005F0C_07_SU163J_MTR3\nMPTARGETED_RDR\nMTRDR/2007/2007_148/FRT00005F0C/FRT00005F0C_07...\n<NA>\n2015-06-12 09:00:29\n2007-05-28 17:30:38.605\n2007-05-28 17:32:22.339\n2/0864840658.00225\n2/0864840761.48344\n...\n52.8\n53.267\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n\n\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n\n\n553\nMROCR_4001\nFRT00005DAC_07_IF165J_MTR3\nMPTARGETED_RDR\nMTRDR/2007/2007_144/FRT00005DAC/FRT00005DAC_07...\n<NA>\n2015-06-12 07:20:09\n2007-05-24 07:16:57.926\n2007-05-24 07:18:57.660\n2/0864458237.21046\n2/0864458357.03629\n...\n156.527\n156.771\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n\n\n554\nMROCR_4001\nFRT00005DAC_07_DE165L_MTR1\nMAP_PROJECTED_DDR\nMTRDR/2007/2007_144/FRT00005DAC/FRT00005DAC_07...\n<NA>\n2015-06-12 07:22:51\n2007-05-24 07:16:57.926\n2007-05-24 07:18:57.660\n2/864458237:21046\n2/864458357:3629\n...\n156.527\n156.771\n9.67\n156.77\n9.66\n156.54\n9.88\n156.75\n9.84\n156.53\n\n\n555\nMROCR_4001\nFRT00005DAC_07_WV165J_MTR3\nMPTARGETED_RDR\nMTRDR/2007/2007_144/FRT00005DAC/FRT00005DAC_07...\n<NA>\n2015-06-12 07:20:09\n2007-05-24 07:16:57.926\n2007-05-24 07:18:57.660\n2/0864458237.21046\n2/0864458357.03629\n...\n-999.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n\n\n556\nMROCR_4001\nFRT00005DAC_07_IN165J_MTR3\nMPTARGETED_RDR\nMTRDR/2007/2007_144/FRT00005DAC/FRT00005DAC_07...\n<NA>\n2015-06-12 07:22:56\n2007-05-24 07:16:57.926\n2007-05-24 07:18:57.660\n2/0864458237.21046\n2/0864458357.03629\n...\n156.527\n156.771\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n\n\n557\nMROCR_4001\nFRT00005DAC_07_SU165J_MTR3\nMPTARGETED_RDR\nMTRDR/2007/2007_144/FRT00005DAC/FRT00005DAC_07...\n<NA>\n2015-06-12 07:20:17\n2007-05-24 07:16:57.926\n2007-05-24 07:18:57.660\n2/0864458237.21046\n2/0864458357.03629\n...\n156.527\n156.771\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n-99.999\n-999.999\n\n\n\n\n558 rows × 57 columns", + "crumbs": [ + "api" + ] + }, + { + "objectID": "api/pds.utils.html", + "href": "api/pds.utils.html", + "title": "PDS Utils", + "section": "", + "text": "source\n\nIndexLabel\n\n IndexLabel (labelpath:Union[str,pathlib.Path])\n\nSupport working with label files of PDS Index tables.\n\n\n\n\n\n\n\n\n\nType\nDetails\n\n\n\n\nlabelpath\nUnion\nPath to the labelfile for a PDS Indexfile.The actual table should reside in the same folder to be automatically parsedwhen calling the read_index_data method.\n\n\n\n\nsource\n\n\nindex_to_df\n\n index_to_df (indexpath:Union[str,pathlib.Path],\n label:__main__.IndexLabel, convert_times=True)\n\nThe main reader function for PDS Indexfiles.\nIn conjunction with an IndexLabel object that figures out the column widths, this reader should work for all PDS TAB files.\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\nindexpath\nUnion\n\nPath to the index TAB file\n\n\nlabel\nIndexLabel\n\nLabel object that has both the column names and the columns widths as attributes‘colnames’ and ‘colspecs’\n\n\nconvert_times\nbool\nTrue\nSwitch to control if to convert columns with “TIME” in name (unless COUNT is as well in name) to datetime\n\n\n\n\nsource\n\n\nPVLColumn\n\n PVLColumn (pvlobj)\n\nManages just one of the columns in a table that is described via PVL.\n\nsource\n\n\ndecode_line\n\n decode_line (linedata:str, labelpath:Union[str,pathlib.Path])\n\nDecode one line of tabbed data with the appropriate label file.\n\n\n\n\n\n\n\n\n\nType\nDetails\n\n\n\n\nlinedata\nstr\nOne line of a .tab data file\n\n\nlabelpath\nUnion\nPath to the appropriate label that describes the data.\n\n\n\n\nsource\n\n\nfind_mixed_type_cols\n\n find_mixed_type_cols (df:pandas.core.frame.DataFrame, fix:bool=True)\n\nFor a given dataframe, find the columns that are of mixed type.\nTool to help with the performance warning when trying to save a pandas DataFrame as a HDF. When a column changes datatype somewhere, pickling occurs, slowing down the reading process of the HDF file.\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\ndf\nDataFrame\n\nDataframe to be searched for mixed data-types\n\n\nfix\nbool\nTrue\nSwitch to control if NaN values in these problem columns should be replaced by the string ‘UNKNOWN’\n\n\nReturns\nlist\n\nList of column names that have data type changes within themselves.\n\n\n\n\nsource\n\n\nfix_hirise_edrcumindex\n\n fix_hirise_edrcumindex (infname:Union[str,pathlib.Path],\n outfname:Union[str,pathlib.Path])\n\nFix HiRISE EDRCUMINDEX.\nThe HiRISE EDRCUMINDEX has some broken lines where the SCAN_EXPOSURE_DURATION is of format F10.4 instead of the defined F9.4. This function simply replaces those incidences with one less decimal fraction, so 20000.0000 becomes 20000.000.\n\n\n\n\nType\nDetails\n\n\n\n\ninfname\nUnion\nPath to broken EDRCUMINDEX.TAB\n\n\noutfname\nUnion\nPath where to store the fixed TAB file", + "crumbs": [ + "api", + "PDS Utils" + ] + }, + { + "objectID": "api/pds.indexes.html", + "href": "api/pds.indexes.html", + "title": "PDS Indexes", + "section": "", + "text": "source\n\nIndex\n\n Index (key:str, url:str=None, check_update:bool=True)\n\nIndex manager class.\nThis class manages one index, identified by a dotted key, e.g. cassini.iss.ring_summary\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\nkey\nstr\n\nNested (dotted) key, e.g. cassini.iss.ring_summary\n\n\nurl\nstr\nNone\nURL to index. If not given, will be read from config object.\n\n\ncheck_update\nbool\nTrue\nswitch if dynamic URLS will be derived upon start\n\n\n\n\nsource\n\n\nIndex.parse_key\n\n Index.parse_key (key:str)\n\nTake care of different ways how the key could be structured.\nThis involves adding the sub-key indexes for the config file structure, which is something the user of this class should not need to know.\n\n\n\n\nType\nDetails\n\n\n\n\nkey\nstr\ndotted key\n\n\n\n\nsource\n\n\nIndex.download\n\n Index.download ()\n\nWrapping URLs for downloading PDS indices and their label files.\n\nsource\n\n\nIndex.update_available\n\n Index.update_available ()\n\nProperty indicating if the index needs to be downloaded.\n\nkey = \"missions.cassini.iss.indexes.moon_summary\"\nkey = \"missions.lro.lroc.edr\"\n\n\nindex = Index(key, check_update=True)\nindex\n\nKey: missions.lro.lroc.indexes.edr\nURL: http://pds.lroc.asu.edu/data/LRO-L-LROC-2-EDR-V1.0/LROLRC_0048C/INDEX/CUMINDEX.LBL\nTimestamp: 2023-10-10 15:30:56.195462\n\n\n\nindex.key\n\n'missions.lro.lroc.indexes.edr'\n\n\n\nindex.label_filename\n\nPath('CUMINDEX.LBL')\n\n\n\nindex.url\n\n'http://pds.lroc.asu.edu/data/LRO-L-LROC-2-EDR-V1.0/LROLRC_0048C/INDEX/CUMINDEX.LBL'\n\n\n\nindex.local_dir\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/lro/lroc/indexes/edr')\n\n\n\nif index.check_update and index.update_available:\n index.download()\n\nThe key can be provided * with or without the leading ‘missions’ * with or without the internal indexes level of the config file\n\nIndex(\"cassini.iss.moon_summary\")\n\nKey: missions.cassini.iss.indexes.moon_summary\nURL: https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_moon_summary.lbl\nTimestamp: 2019-06-08 16:28:22\n\n\n\nIndex(\"cassini.iss.indexes.moon_summary\")\n\nKey: missions.cassini.iss.indexes.moon_summary\nURL: https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_moon_summary.lbl\nTimestamp: 2019-06-08 16:28:22\n\n\n\nindex.isotimestamp\n\n'2023-10-10T15:30:56.195462'\n\n\n\nindex.mission_key\n\n'lro'\n\n\n\nindex.local_dir\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/lro/lroc/indexes/edr')\n\n\n\nindex.key_tokens[:2]\n\n['missions', 'lro']\n\n\n\nindex.instrument_key\n\n'lro.lroc'\n\n\n\nconfig.get_value(index.instrument_key)\n\n{'indexes': {'edr': {'url': 'http://pds.lroc.asu.edu/data/LRO-L-LROC-2-EDR-V1.0/LROLRC_0048C/INDEX/CUMINDEX.LBL', 'timestamp': '2023-10-10T15:30:56.195462'}}}\n\n\n\nindex = Index('mro.ctx.edr', check_update=False)\n\n\nindex.url\n\n''\n\n\n\nindex.label_filename\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/ctx/indexes/edr/cumindex.lbl')\n\n\n\nlist(index.local_dir.glob(\"*.[lL][bB][lL]\"))\n\n[Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/ctx/indexes/edr/cumindex.lbl')]", + "crumbs": [ + "api", + "PDS Indexes" + ] + }, + { + "objectID": "api/config.html", + "href": "api/config.html", + "title": "Config", + "section": "", + "text": "source", + "crumbs": [ + "api", + "Config" + ] + }, + { + "objectID": "api/config.html#the-config-object", + "href": "api/config.html#the-config-object", + "title": "Config", + "section": "The Config() object", + "text": "The Config() object\nThe config module instantiates a config object from the Config class. Its attributes can be used to access several aspects relevant to the configuration of planetarypy. Using an object approach enables easy growth and nesting over time.\n\nconfig = Config(config_path=\"test_config.toml\")\n\n\nassert config.storage_root == Path.home() / \"planetarypy_data\"\n\n\nsource\n\nConfig.get_value\n\n Config.get_value (key:str)\n\nGet sub-dictionary by nested key.\n\n\n\n\n\n\n\n\n\nType\nDetails\n\n\n\n\nkey\nstr\nA nested key in dotted format, e.g. cassini.uvis.indexes\n\n\nReturns\nstr\nReturning empty string if not existing, because Path(’’) is False which is handy (e.g. in ctx mod.)\n\n\n\n\nconfig.list_indexes(\"mro.hirise\")\n\n['dtm', 'edr', 'rdr']\n\n\n\nindex = \"missions.cassini.iss.indexes.moon_summary\"\n\n\nconfig.get_value(index)['url']\n\n'https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_moon_summary.lbl'\n\n\n\nsource\n\n\nConfig.set_value\n\n Config.set_value (nested_key:str, value:Union[float,str], save:bool=True)\n\nSet value in sub-dic using dotted key.\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\nnested_key\nstr\n\nA nested key in dotted format, e.g. cassini.uvis.ring_summary\n\n\nvalue\nUnion\n\nValue for the given key to be stored\n\n\nsave\nbool\nTrue\nSwitch to control writing out to disk\n\n\n\n\nsource\n\n\nConfig.save\n\n Config.save ()\n\nWrite the TOML doc to file.\n\nconfig.get_value(index)['url']\n\n'https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_moon_summary.lbl'\n\n\n\nconfig.get_value(\"mro.ctx.datalevels\")['edr']['url']\n\n'https://pds-imaging.jpl.nasa.gov/data/mro/mars_reconnaissance_orbiter/ctx'\n\n\n\nsource\n\n\nConfig.ask_storage_root\n\n Config.ask_storage_root ()\n\nUse input() to ask user for the storage_root path.\nThe path will be stored in the TOML-dict and saved into existing config file at Class.path, either default or as given during init. storage_root attribute is set as well.\n\nconfig.missions\n\n['cassini', 'mro', 'lro', 'go']\n\n\n\nassert config.path.name == '.planetarypy_config.toml'\n\n\nconfig.list_instruments(\"cassini\")\n\n['iss', 'uvis']\n\n\n\nconfig.list_indexes(\"cassini.iss\")\n\n['index', 'inventory', 'moon_summary', 'ring_summary', 'saturn_summary']\n\n\n\nsource\n\n\nConfig.get_datalevels\n\n Config.get_datalevels (mission_instrument)\n\nReturn configured data levels available for an instrument.\nThis currently simply points to the indexes, assuming that everything that has an index is also its own datalevel. In case it ever is not, we can add more here.\n\n\n\n\nDetails\n\n\n\n\nmission_instrument\nmission.instrument code, e.g. mro.hirise\n\n\n\n\nconfig.get_datalevels(\"mro.hirise\")\n\n['dtm', 'edr', 'rdr']\n\n\n\nfrom nbdev import nbdev_export\n\nnbdev_export()", + "crumbs": [ + "api", + "Config" + ] + }, + { + "objectID": "api/spice.kernels.html", + "href": "api/spice.kernels.html", + "title": "SPICE Kernels", + "section": "", + "text": "Feature list for this module:\n\nReceive the list of supported datasets for automatic retrieval of archived SPICE kernels\n\nThe supported datasets are tabled here at NAIF: https://naif.jpl.nasa.gov/naif/data_archived.html\n\nReceive the list of required SPICE kernels for a given mission and time range\nAutomatic download of kernels for a given mission and time range either into a given location or the planetarypy local archive.\n\nAs always in planetarypy the general design philosophy is to first develop a management class to give the user full control over all the details, and then add easy-to-use function for the end-user that do the most frequently used things in one go. (See section “User Functions”)", + "crumbs": [ + "api", + "SPICE Kernels" + ] + }, + { + "objectID": "api/spice.kernels.html#intro", + "href": "api/spice.kernels.html#intro", + "title": "SPICE Kernels", + "section": "", + "text": "Feature list for this module:\n\nReceive the list of supported datasets for automatic retrieval of archived SPICE kernels\n\nThe supported datasets are tabled here at NAIF: https://naif.jpl.nasa.gov/naif/data_archived.html\n\nReceive the list of required SPICE kernels for a given mission and time range\nAutomatic download of kernels for a given mission and time range either into a given location or the planetarypy local archive.\n\nAs always in planetarypy the general design philosophy is to first develop a management class to give the user full control over all the details, and then add easy-to-use function for the end-user that do the most frequently used things in one go. (See section “User Functions”)", + "crumbs": [ + "api", + "SPICE Kernels" + ] + }, + { + "objectID": "api/spice.kernels.html#identifying-and-downloading-kernel-sets", + "href": "api/spice.kernels.html#identifying-and-downloading-kernel-sets", + "title": "SPICE Kernels", + "section": "Identifying and downloading kernel sets", + "text": "Identifying and downloading kernel sets\nOne repeating task for SPICE calculations is the identification and retrieval of all SPICE kernels for a mission for a given time interval.\nThe folks at NAIF offer a “Subset” feature at their servers. Here we set up a table of the currently supported datasets:\n\ndatasets\n\n\n\n\n\n\n\n\n\npath\nMission Name\nPDS3 or PDS4\nData Size (GB)\nStart Time\nStop Time\n\n\nshorthand\n\n\n\n\n\n\n\n\n\n\nbc\nbc/bc_spice\nBepiColombo\n4\n1.1\n2018-10-20\n2023-01-01\n\n\ncassini\nco-s_j_e_v-spice-6-v1.0/cosp_1000\nCassini Orbiter\n3\n62.5\n1997-10-15\n2017-09-15\n\n\nclementine\nclem1-l-spice-6-v1.0/clsp_1000\nClementine\n3\n0.8\n1994-01-26\n1994-05-07\n\n\ndart\ndart/dart_spice\nDART\n4\n9.1\n2021-11-09\n2050-01-01\n\n\ndawn\ndawn-m_a-spice-6-v1.0/dawnsp_1000\nDAWN\n3\n86.4\n2007-09-27\n2018-10-31\n\n\ndi\ndi-c-spice-6-v1.0/disp_1000\nDeep Impact\n3\n0.7\n2005-01-12\n2005-08-09\n\n\nds1\nds1-a_c-spice-6-v1.0/ds1sp_1000\nDeep Space 1\n3\n0.9\n1998-10-24\n2001-12-18\n\n\nepoxi\ndif-c_e_x-spice-6-v1.0/epxsp_1000\nEPOXI\n3\n1.0\n2005-08-23\n2011-03-01\n\n\nem16\nem16/em16_spice\nExoMars TGO 2016\n4\n9.4\n2016-03-14\n2023-01-01\n\n\ngrail\ngrail-l-spice-6-v1.0/grlsp_1000\nGRAIL\n3\n4.3\n2011-09-10\n2012-12-17\n\n\nhayabusa\nhay-a-spice-6-v1.0/haysp_1000\nHayabusa\n3\n0.3\n2005-09-11\n2005-11-19\n\n\ninsight\ninsight/insight_spice\nInSight\n4\n0.9\n2018-05-05\n2022-12-15\n\n\njuno\njno-j_e_ss-spice-6-v1.0/jnosp_1000\nJUNO\n3\n46.9\n2011-08-05\n2022-08-17\n\n\nladee\nladee/ladee_spice\nLADEE\n4\n0.6\n2013-09-07\n2050-01-01\n\n\nlro\nlro-l-spice-6-v1.0/lrosp_1000\nLunar Reconnaissance Orbiter\n3\n595.7\n2009-06-18\n2023-03-15\n\n\nmaven\nmaven/maven_spice\nMAVEN\n4\n54.4\n2013-11-18\n2023-04-01\n\n\nopportunity\nmer1-m-spice-6-v1.0/mer1sp_1000\nMER 1 (Opportunity)\n3\n4.1\n2003-07-07\n2018-06-10\n\n\nspirit\nmer2-m-spice-6-v1.0/mer2sp_1000\nMER 2 (Spirit)\n3\n2.6\n2003-06-10\n2010-05-03\n\n\nmessenger\nmess-e_v_h-spice-6-v1.0/messsp_1000\nMESSENGER\n3\n44.8\n2004-08-03\n2015-04-30\n\n\nmars2020\nmars2020/mars2020_spice\nMars 2020\n4\n0.6\n2020-07-30\n2022-12-28\n\n\nmex\nmex-e_m-spice-6-v2.0/mexsp_2000\nMars Express\n3\n8.5\n2003-06-02\n2022-11-30\n\n\nmgs\nmgs-m-spice-6-v1.0/mgsp_1000\nMars Global Surveyor\n3\n15.4\n1996-11-06\n2006-11-02\n\n\nody\nody-m-spice-6-v1.0/odsp_1000\nMars Odyssey\n3\n33.2\n2001-04-07\n2022-10-01\n\n\nmro\nmro-m-spice-6-v1.0/mrosp_1000\nMars Reconnaissance Orbiter\n3\n314.9\n2005-08-12\n2023-04-01\n\n\nmsl\nmsl-m-spice-6-v1.0/mslsp_1000\nMars Science Laboratory\n3\n0.6\n2011-11-26\n2022-11-06\n\n\nnear\nnear-a-spice-6-v1.0/nearsp_1000\nNEAR\n3\n2.4\n1996-05-30\n2001-02-28\n\n\nnh\nnh-j_p_ss-spice-6-v1.0/nhsp_1000\nNew Horizons\n3\n1.6\n2006-01-19\n2019-12-30\n\n\norex\norex/orex_spice\nOSIRIS-REx\n4\n418.4\n2016-09-08\n2021-02-22\n\n\nrosetta\nro_rl-e_m_a_c-spice-6-v1.0/rossp_1000\nRosetta\n3\n5.9\n2004-03-02\n2017-01-01\n\n\nstardust\nsdu-c-spice-6-v1.0/sdsp_1000\nStardust\n3\n1.9\n1999-02-07\n2011-05-01\n\n\nvenus_climate_orbiter\nvco/vco_spice\nVenus Climate Orbiter\n4\n1.7\n2010-05-21\n2022-01-01\n\n\nvex\nvex-e_v-spice-6-v2.0/vexsp_2000\nVenus Express\n3\n5.0\n2005-11-09\n2015-02-06\n\n\nvo\nvo1_vo2-m-spice-6-v1.0/vosp_1000\nViking Orbiter\n3\n0.1\n1976-06-16\n1980-07-30\n\n\n\n\n\n\n\n\nTo receive this dataframe:\nfrom planetarypy.spice.kernels import datasets\nSome validation helpers:\n\nsource\n\nis_stop_valid\n\n is_stop_valid (mission:str, stop:astropy.time.core.Time)\n\n\n\n\n\nType\nDetails\n\n\n\n\nmission\nstr\nmission shorthand label of datasets dataframe\n\n\nstop\nTime\nstop time in astropy.Time format\n\n\n\n\nsource\n\n\nis_start_valid\n\n is_start_valid (mission:str, start:astropy.time.core.Time)\n\n\n\n\n\nType\nDetails\n\n\n\n\nmission\nstr\nmission shorthand label of datasets dataframe\n\n\nstart\nTime\nstart time in astropy.Time format\n\n\n\n\nassert is_start_valid(\"cassini\", Time(\"1998-01-01\")) is True\nassert is_start_valid(\"cassini\", Time(\"1997-01-01\")) is False\nassert is_stop_valid(\"cassini\", \"2017-01-01\") is True\nassert is_stop_valid(\"cassini\", \"2018-01-01\") is False\n\nNow we build a management class for wrapping the Perl script available at below’s URL for accessing subsets of these datasets.\nFirst, the basic URLs we will use:\nThe Perl script subsetds.pl (the name at the end of the BASE_URL) requires as input:\n\nthe dataset name\nstart and stop of the time interval\na constant named “Subset” to identify the action for this Perl script\n\nWe can assemble these parameters into a payload dictionary for the requests.get call and we manage different potential actions on the zipfile with a Subsetter class, that only requires the mission identifier, start and stop as parameters.\n/home/runner/micromamba/envs/my-env/lib/python3.12/site-packages/fastcore/docscrape.py:225: UserWarning: Unknown section Attributes\n else: warn(msg)\n\nsource\n\n\nSubsetter\n\n Subsetter (mission:str, start:str, stop=None, save_location=None)\n\nClass to manage retrieving subset SPICE kernel lists\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\nmission\nstr\n\nmission shorthand in datasets dataframe\n\n\nstart\nstr\n\nstart time in either ISO or yyyy-jjj format\n\n\nstop\nNoneType\nNone\nstop time in either ISO or yyyy-jjj format\n\n\nsave_location\nNoneType\nNone\noverwrite default storing in planetarpy archive\n\n\n\n\nsource\n\n\ndownload_one_url\n\n download_one_url (url, local_path, overwrite:bool=False)\n\n\nsubset = Subsetter(\"cassini\", \"2014-270\")\n\n\nsubset.kernel_names\n\n['ck/14001_15001pa_gapfill_v14.bc',\n 'ck/14212_14279py_as_flown.bc',\n 'ck/14268_14273ra.bc',\n 'ck/cas_cda_20150318.bc',\n 'ck/cas_lemms_05109_20001_v2.bc',\n 'fk/cas_dyn_v03.tf',\n 'fk/cas_mimi_v202.tf',\n 'fk/cas_rocks_v18.tf',\n 'fk/cas_v41.tf',\n 'ik/cas_caps_v03.ti',\n 'ik/cas_cda_v01.ti',\n 'ik/cas_cirs_v09.ti',\n 'ik/cas_inms_v02.ti',\n 'ik/cas_iss_v10.ti',\n 'ik/cas_mag_v01.ti',\n 'ik/cas_mimi_v11.ti',\n 'ik/cas_radar_v11.ti',\n 'ik/cas_rpws_v01.ti',\n 'ik/cas_rss_v03.ti',\n 'ik/cas_sru_v02.ti',\n 'ik/cas_uvis_v06.ti',\n 'ik/cas_vims_v06.ti',\n 'lsk/naif0012.tls',\n 'pck/pck00010.tpc',\n 'sclk/cas00172.tsc',\n 'spk/140809BP_IRRE_00256_25017.bsp',\n 'spk/150122R_SCPSE_14251_14283.bsp',\n 'spk/180927AP_RE_90165_18018.bsp']\n\n\n\n# this should fail:\ndef _failing():\n Subsetter(\"cassini\", \"2019-01-01\")\n\n\ntest_fail(_failing, contains=\"start/stop\")\n\n\nsubset = Subsetter(\"cassini\", \"2011-02-13\", \"2011-02-14\")\n\n\nsubset.urls_file\n\n'urls_cosp_1000_110213_110214.txt'\n\n\n\nsubset.metakernel_file\n\n'cas_2011_v17_110213_110214.tm'\n\n\n\nsource\n\n\nSubsetter.kernel_names\n\n Subsetter.kernel_names ()\n\nReturn list of names of kernels for the given time range.\n\nsubset.kernel_names\n\n['ck/11001_12001pa_gapfill_v14.bc',\n 'ck/11017_11066py_as_flown.bc',\n 'ck/11044_11049ra.bc',\n 'ck/cas_cda_20120517.bc',\n 'ck/cas_lemms_05109_20001_v2.bc',\n 'fk/cas_dyn_v03.tf',\n 'fk/cas_mimi_v202.tf',\n 'fk/cas_rocks_v18.tf',\n 'fk/cas_v41.tf',\n 'ik/cas_caps_v03.ti',\n 'ik/cas_cda_v01.ti',\n 'ik/cas_cirs_v09.ti',\n 'ik/cas_inms_v02.ti',\n 'ik/cas_iss_v10.ti',\n 'ik/cas_mag_v01.ti',\n 'ik/cas_mimi_v11.ti',\n 'ik/cas_radar_v11.ti',\n 'ik/cas_rpws_v01.ti',\n 'ik/cas_rss_v03.ti',\n 'ik/cas_sru_v02.ti',\n 'ik/cas_uvis_v06.ti',\n 'ik/cas_vims_v06.ti',\n 'lsk/naif0012.tls',\n 'pck/pck00010.tpc',\n 'sclk/cas00172.tsc',\n 'spk/110504R_SCPSE_11041_11093.bsp',\n 'spk/140809BP_IRRE_00256_25017.bsp',\n 'spk/180927AP_RE_90165_18018.bsp']\n\n\n\nsubset.kernel_urls\n\n['https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ck/11001_12001pa_gapfill_v14.bc',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ck/11017_11066py_as_flown.bc',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ck/11044_11049ra.bc',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ck/cas_cda_20120517.bc',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ck/cas_lemms_05109_20001_v2.bc',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/fk/cas_dyn_v03.tf',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/fk/cas_mimi_v202.tf',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/fk/cas_rocks_v18.tf',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/fk/cas_v41.tf',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_caps_v03.ti',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_cda_v01.ti',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_cirs_v09.ti',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_inms_v02.ti',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_iss_v10.ti',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_mag_v01.ti',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_mimi_v11.ti',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_radar_v11.ti',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_rpws_v01.ti',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_rss_v03.ti',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_sru_v02.ti',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_uvis_v06.ti',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/ik/cas_vims_v06.ti',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/lsk/naif0012.tls',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/pck/pck00010.tpc',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/sclk/cas00172.tsc',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/spk/110504R_SCPSE_11041_11093.bsp',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/spk/140809BP_IRRE_00256_25017.bsp',\n 'https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000/data/spk/180927AP_RE_90165_18018.bsp']\n\n\n\nsource\n\n\nSubsetter.get_local_path\n\n Subsetter.get_local_path (url)\n\nCalculate local storage path from Kernel URL, using save_location if given.\nIf self.save_location is None, the planetarypy archive is being used.\n\n\n\n\n\n\n\n\n\nType\nDetails\n\n\n\n\nurl\n\nkernel url to determine local storage path\n\n\nReturns\nPath\nfull local path where kernel in URL will be stored\n\n\n\n\nsubset.get_local_path(subset.kernel_urls[0])\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/spice_kernels/cassini/ck/11001_12001pa_gapfill_v14.bc')\n\n\n\nsubset.save_location = Path(\".\")\n\n\nsubset.get_local_path(subset.kernel_urls[0])\n\nPath('ck/11001_12001pa_gapfill_v14.bc')\n\n\n\nsource\n\n\nSubsetter.download_kernels\n\n Subsetter.download_kernels (overwrite:bool=False,\n non_blocking:bool=False, quiet:bool=False)\n\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\noverwrite\nbool\nFalse\nswitch to control if kernels should be downloaded over existing ones\n\n\nnon_blocking\nbool\nFalse\n\n\n\nquiet\nbool\nFalse\n\n\n\n\n\n# reset save_location to prevent additional download\nsubset.save_location = None\n\n\nsubset.download_kernels()\n\n\n\n\nck 11001_12001pa_gapfill_v14.bc locally available.\nck 11017_11066py_as_flown.bc locally available.\nck 11044_11049ra.bc locally available.\nck cas_cda_20120517.bc locally available.\nck cas_lemms_05109_20001_v2.bc locally available.\nfk cas_dyn_v03.tf locally available.\nfk cas_mimi_v202.tf locally available.\nfk cas_rocks_v18.tf locally available.\nfk cas_v41.tf locally available.\nik cas_caps_v03.ti locally available.\nik cas_cda_v01.ti locally available.\nik cas_cirs_v09.ti locally available.\nik cas_inms_v02.ti locally available.\nik cas_iss_v10.ti locally available.\nik cas_mag_v01.ti locally available.\nik cas_mimi_v11.ti locally available.\nik cas_radar_v11.ti locally available.\nik cas_rpws_v01.ti locally available.\nik cas_rss_v03.ti locally available.\nik cas_sru_v02.ti locally available.\nik cas_uvis_v06.ti locally available.\nik cas_vims_v06.ti locally available.\nlsk naif0012.tls locally available.\npck pck00010.tpc locally available.\nsclk cas00172.tsc locally available.\nspk 110504R_SCPSE_11041_11093.bsp locally available.\nspk 140809BP_IRRE_00256_25017.bsp locally available.\nspk 180927AP_RE_90165_18018.bsp locally available.\n\n\n\nsubset.download_kernels(non_blocking=True)\n\n\n\n\nck 11001_12001pa_gapfill_v14.bc locally available.\nck 11017_11066py_as_flown.bc locally available.\nck 11044_11049ra.bc locally available.\nck cas_cda_20120517.bc locally available.\nck cas_lemms_05109_20001_v2.bc locally available.\nfk cas_dyn_v03.tf locally available.\nfk cas_mimi_v202.tf locally available.\nfk cas_rocks_v18.tf locally available.\nfk cas_v41.tf locally available.\nik cas_caps_v03.ti locally available.\nik cas_cda_v01.ti locally available.\nik cas_cirs_v09.ti locally available.\nik cas_inms_v02.ti locally available.\nik cas_iss_v10.ti locally available.\nik cas_mag_v01.ti locally available.\nik cas_mimi_v11.ti locally available.\nik cas_radar_v11.ti locally available.\nik cas_rpws_v01.ti locally available.\nik cas_rss_v03.ti locally available.\nik cas_sru_v02.ti locally available.\nik cas_uvis_v06.ti locally available.\nik cas_vims_v06.ti locally available.\nlsk naif0012.tls locally available.\npck pck00010.tpc locally available.\nsclk cas00172.tsc locally available.\nspk 110504R_SCPSE_11041_11093.bsp locally available.\nspk 140809BP_IRRE_00256_25017.bsp locally available.\nspk 180927AP_RE_90165_18018.bsp locally available.\n\n\n[]\n\n\n\nsource\n\n\nSubsetter.get_metakernel\n\n Subsetter.get_metakernel ()\n\nGet metakernel file from NAIF and adapt path to match local storage.\nUse save_location if given, otherwise planetarypy archive.\n\nmkpath = subset.get_metakernel()\nmkpath\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/spice_kernels/cassini/cas_2011_v17_110213_110214.tm')\n\n\n\n!cat {mkpath}\n\nKPL/MK\n\n This meta-kernel lists a subset of kernels from the meta-kernel\n cas_2011_v17.tm provided in the CO-S/J/E/V-SPICE-6-V1.0 SPICE PDS3 archive,\n covering the whole or a part of the customer requested time period\n from 2011-02-13T00:00:00.000 to 2011-02-14T00:00:00.000.\n\n The documentation describing these kernels can be found in the\n complete CO-S/J/E/V-SPICE-6-V1.0 SPICE PDS3 archive available at this URL\n\n https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000\n\n To use this meta-kernel users may need to modify the value of the\n PATH_VALUES keyword to point to the actual location of the archive's\n ``data'' directory on their system. Replacing ``/'' with ``\\''\n and converting line terminators to the format native to the user's\n system may also be required if this meta-kernel is to be used on a\n non-UNIX workstation.\n\n This meta-kernel was created by the NAIF node's SPICE PDS archive\n subsetting service version 2.1 on Mon Jun 19 08:13:34 PDT 2023.\n\n \n \\begindata\n \n PATH_VALUES = (\n '/home/ayek72/mnt/slowdata/planetarypy/spice_kernels/cassini'\n )\n \n PATH_SYMBOLS = (\n 'KERNELS'\n )\n \n KERNELS_TO_LOAD = (\n '$KERNELS/lsk/naif0012.tls'\n '$KERNELS/pck/pck00010.tpc'\n '$KERNELS/fk/cas_rocks_v18.tf'\n '$KERNELS/fk/cas_mimi_v202.tf'\n '$KERNELS/fk/cas_dyn_v03.tf'\n '$KERNELS/fk/cas_v41.tf'\n '$KERNELS/ik/cas_caps_v03.ti'\n '$KERNELS/ik/cas_cda_v01.ti'\n '$KERNELS/ik/cas_cirs_v09.ti'\n '$KERNELS/ik/cas_inms_v02.ti'\n '$KERNELS/ik/cas_iss_v10.ti'\n '$KERNELS/ik/cas_mag_v01.ti'\n '$KERNELS/ik/cas_mimi_v11.ti'\n '$KERNELS/ik/cas_radar_v11.ti'\n '$KERNELS/ik/cas_rpws_v01.ti'\n '$KERNELS/ik/cas_rss_v03.ti'\n '$KERNELS/ik/cas_sru_v02.ti'\n '$KERNELS/ik/cas_uvis_v06.ti'\n '$KERNELS/ik/cas_vims_v06.ti'\n '$KERNELS/sclk/cas00172.tsc'\n '$KERNELS/spk/180927AP_RE_90165_18018.bsp'\n '$KERNELS/spk/140809BP_IRRE_00256_25017.bsp'\n '$KERNELS/spk/110504R_SCPSE_11041_11093.bsp'\n '$KERNELS/ck/11001_12001pa_gapfill_v14.bc'\n '$KERNELS/ck/11017_11066py_as_flown.bc'\n '$KERNELS/ck/11044_11049ra.bc'\n '$KERNELS/ck/cas_cda_20120517.bc'\n '$KERNELS/ck/cas_lemms_05109_20001_v2.bc'\n )\n \n \\begintext\n \n\n\n\nLoading the metakernel works! :\n\nspice.furnsh(str(mkpath))\n\nOr, with given save_location:\n\nsubset.save_location = Path(\".\")\nmkpath = subset.get_metakernel()\nmkpath\n\nPath('cas_2011_v17_110213_110214.tm')\n\n\nThe metakernel is correctly adapted, however for these tests, I didn’t download the kernels again\n\n!cat {mkpath}\n\nKPL/MK\n\n This meta-kernel lists a subset of kernels from the meta-kernel\n cas_2011_v17.tm provided in the CO-S/J/E/V-SPICE-6-V1.0 SPICE PDS3 archive,\n covering the whole or a part of the customer requested time period\n from 2011-02-13T00:00:00.000 to 2011-02-14T00:00:00.000.\n\n The documentation describing these kernels can be found in the\n complete CO-S/J/E/V-SPICE-6-V1.0 SPICE PDS3 archive available at this URL\n\n https://naif.jpl.nasa.gov/pub/naif/pds/data/co-s_j_e_v-spice-6-v1.0/cosp_1000\n\n To use this meta-kernel users may need to modify the value of the\n PATH_VALUES keyword to point to the actual location of the archive's\n ``data'' directory on their system. Replacing ``/'' with ``\\''\n and converting line terminators to the format native to the user's\n system may also be required if this meta-kernel is to be used on a\n non-UNIX workstation.\n\n This meta-kernel was created by the NAIF node's SPICE PDS archive\n subsetting service version 2.1 on Mon Jun 19 08:13:34 PDT 2023.\n\n \n \\begindata\n \n PATH_VALUES = (\n '.'\n )\n \n PATH_SYMBOLS = (\n 'KERNELS'\n )\n \n KERNELS_TO_LOAD = (\n '$KERNELS/lsk/naif0012.tls'\n '$KERNELS/pck/pck00010.tpc'\n '$KERNELS/fk/cas_rocks_v18.tf'\n '$KERNELS/fk/cas_mimi_v202.tf'\n '$KERNELS/fk/cas_dyn_v03.tf'\n '$KERNELS/fk/cas_v41.tf'\n '$KERNELS/ik/cas_caps_v03.ti'\n '$KERNELS/ik/cas_cda_v01.ti'\n '$KERNELS/ik/cas_cirs_v09.ti'\n '$KERNELS/ik/cas_inms_v02.ti'\n '$KERNELS/ik/cas_iss_v10.ti'\n '$KERNELS/ik/cas_mag_v01.ti'\n '$KERNELS/ik/cas_mimi_v11.ti'\n '$KERNELS/ik/cas_radar_v11.ti'\n '$KERNELS/ik/cas_rpws_v01.ti'\n '$KERNELS/ik/cas_rss_v03.ti'\n '$KERNELS/ik/cas_sru_v02.ti'\n '$KERNELS/ik/cas_uvis_v06.ti'\n '$KERNELS/ik/cas_vims_v06.ti'\n '$KERNELS/sclk/cas00172.tsc'\n '$KERNELS/spk/180927AP_RE_90165_18018.bsp'\n '$KERNELS/spk/140809BP_IRRE_00256_25017.bsp'\n '$KERNELS/spk/110504R_SCPSE_11041_11093.bsp'\n '$KERNELS/ck/11001_12001pa_gapfill_v14.bc'\n '$KERNELS/ck/11017_11066py_as_flown.bc'\n '$KERNELS/ck/11044_11049ra.bc'\n '$KERNELS/ck/cas_cda_20120517.bc'\n '$KERNELS/ck/cas_lemms_05109_20001_v2.bc'\n )\n \n \\begintext", + "crumbs": [ + "api", + "SPICE Kernels" + ] + }, + { + "objectID": "api/spice.kernels.html#user-functions", + "href": "api/spice.kernels.html#user-functions", + "title": "SPICE Kernels", + "section": "User functions", + "text": "User functions\n\nsource\n\nget_metakernel_and_files\n\n get_metakernel_and_files (mission:str, start:str, stop:str,\n save_location:str=None, quiet:bool=False)\n\nFor a given mission and start/stop times, download the kernels and get metakernel path\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\nmission\nstr\n\nmission shorthand from datasets dataframe\n\n\nstart\nstr\n\nstart time as iso-string, or yyyy-jjj\n\n\nstop\nstr\n\nstop time as iso-string or yyyy-jjj\n\n\nsave_location\nstr\nNone\noverride storage into planetarypy archive\n\n\nquiet\nbool\nFalse\nsuppress kernel-wise feedback\n\n\nReturns\nPath\n\npathlib.Path to metakernel file with corrected data path.\n\n\n\n\nmkpath = get_metakernel_and_files(\"cassini\", \"2011-02-13\", \"2011-02-14\")\nmkpath\n\n/Users/maye/mambaforge/envs/py39/lib/python3.9/site-packages/distributed/node.py:182: UserWarning: Port 8787 is already in use.\nPerhaps you already have a cluster running?\nHosting the HTTP server on port 57624 instead\n warnings.warn(\n\n\n\n\n\nck 11001_12001pa_gapfill_v14.bc locally available.\nck 11017_11066py_as_flown.bc locally available.\nck 11044_11049ra.bc locally available.\nck cas_cda_20120517.bc locally available.\nck cas_lemms_05109_20001_v2.bc locally available.\nfk cas_dyn_v03.tf locally available.\nfk cas_mimi_v202.tf locally available.\nfk cas_rocks_v18.tf locally available.\nfk cas_v41.tf locally available.\nik cas_caps_v03.ti locally available.\nik cas_cda_v01.ti locally available.\nik cas_cirs_v09.ti locally available.\nik cas_inms_v02.ti locally available.\nik cas_iss_v10.ti locally available.\nik cas_mag_v01.ti locally available.\nik cas_mimi_v11.ti locally available.\nik cas_radar_v11.ti locally available.\nik cas_rpws_v01.ti locally available.\nik cas_rss_v03.ti locally available.\nik cas_sru_v02.ti locally available.\nik cas_uvis_v06.ti locally available.\nik cas_vims_v06.ti locally available.\nlsk naif0012.tls locally available.\npck pck00010.tpc locally available.\nsclk cas00172.tsc locally available.\nspk 110504R_SCPSE_11041_11093.bsp locally available.\nspk 140809BP_IRRE_00256_25017.bsp locally available.\nspk 180927AP_RE_90165_18018.bsp locally available.\n\n\nPath('/Users/maye/planetarypy_data/spice_kernels/cassini/cas_2011_v17_110213_110214.tm')\n\n\n\nsource\n\n\nlist_kernels_for_day\n\n list_kernels_for_day (mission:str, start:str, stop:str='')\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\nmission\nstr\n\nmission shorthand from datasets dataframe\n\n\nstart\nstr\n\nstart time as iso-string, or yyyy-jjj\n\n\nstop\nstr\n\nstop time as iso-string or yyyy-jjj\n\n\nReturns\nlist\n\nlist of kernel names\n\n\n\n\nlist_kernels_for_day(\"mro\", \"2015-02-13\")\n\n['ck/mro_crm_psp_150201_150228.bc',\n 'ck/mro_hga_psp_150210_150216_v2.bc',\n 'ck/mro_mcs_psp_150201_150228.bc',\n 'ck/mro_sa_psp_150210_150216_v2.bc',\n 'ck/mro_sc_psp_150210_150216_v2.bc',\n 'fk/mro_v16.tf',\n 'ik/mro_crism_v10.ti',\n 'ik/mro_ctx_v11.ti',\n 'ik/mro_hirise_v12.ti',\n 'ik/mro_marci_v10.ti',\n 'ik/mro_mcs_v10.ti',\n 'ik/mro_onc_v10.ti',\n 'lsk/naif0012.tls',\n 'pck/pck00008.tpc',\n 'sclk/mro_sclkscet_00095_65536.tsc',\n 'spk/de421.bsp',\n 'spk/mar097.bsp',\n 'spk/mro_psp34.bsp',\n 'spk/mro_psp34_ssd_mro95a.bsp',\n 'spk/mro_struct_v10.bsp']\n\n\n\n# this always takes much longer than other requests!\nlist_kernels_for_day(\"maven\", \"2017-01-01\")\n\n['ck/mvn_app_rel_161226_170101_v01.bc',\n 'ck/mvn_app_rel_170102_170108_v01.bc',\n 'ck/mvn_iuvs_rem_170101_170331_v03.bc',\n 'ck/mvn_sc_rel_161226_170101_v01.bc',\n 'ck/mvn_sc_rel_170102_170108_v02.bc',\n 'ck/mvn_swea_nom_131118_300101_v02.bc',\n 'fk/maven_v09.tf',\n 'ik/maven_ant_v10.ti',\n 'ik/maven_euv_v10.ti',\n 'ik/maven_iuvs_v11.ti',\n 'ik/maven_ngims_v10.ti',\n 'ik/maven_sep_v12.ti',\n 'ik/maven_static_v11.ti',\n 'ik/maven_swea_v11.ti',\n 'ik/maven_swia_v10.ti',\n 'lsk/naif0012.tls',\n 'pck/pck00010.tpc',\n 'sclk/mvn_sclkscet_00072.tsc',\n 'spk/de430s.bsp',\n 'spk/mar097s.bsp',\n 'spk/maven_orb_rec_170101_170401_v1.bsp',\n 'spk/maven_struct_v01.bsp']\n\n\n\n# this always takes much longer than other requests!\nlist_kernels_for_day(\"orex\", \"2018-11-30\")\n\n['ck/orx_sa_rel_181126_181202_v01.bc',\n 'ck/orx_sc_rel_181126_181202_v01.bc',\n 'ck/orx_struct_mapcam_v01.bc',\n 'ck/orx_struct_polycam_v01.bc',\n 'fk/orx_shape_v03.tf',\n 'fk/orx_v14.tf',\n 'ik/orx_lidar_v00.ti',\n 'ik/orx_navcam_v02.ti',\n 'ik/orx_ocams_v07.ti',\n 'ik/orx_ola_v01.ti',\n 'ik/orx_otes_v00.ti',\n 'ik/orx_ovirs_v00.ti',\n 'ik/orx_rexis_v01.ti',\n 'ik/orx_stowcam_v00.ti',\n 'ik/orx_struct_v00.ti',\n 'lsk/naif0012.tls',\n 'pck/bennu_v17.tpc',\n 'pck/pck00010.tpc',\n 'sclk/orx_sclkscet_00074.tsc',\n 'spk/bennu_refdrmc_v1.bsp',\n 'spk/de424.bsp',\n 'spk/orx_180301_181201_180921_od044_v1.bsp',\n 'spk/orx_180801_190302_181218_od077_v1.bsp',\n 'spk/orx_181203_190302_190104_od085_v1.bsp',\n 'spk/orx_struct_v04.bsp']\n\n\n\ndef _test_mission_kernels_available(mission):\n print(\"Doing\", mission)\n start = datasets.at[mission, \"Start Time\"]\n end = datasets.at[mission, \"Stop Time\"]\n half = Time(start) + (Time(end) - Time(start)) / 2\n print(\"Half time:\", half)\n try:\n found = list_kernels_for_day(mission, half)\n except IndexError:\n print(\"Problem with\", mission)\n else:\n print(f\"Found {len(found)} kernels for {mission}\")\n\nfor mission in datasets.index:\n _test_mission_kernels_available(mission)\n\nDoing bc\nHalf time: 2020-11-25 00:00:00.000\nFound 41 kernels for bc\nDoing cassini\nHalf time: 2007-09-30 12:00:01.000\nFound 32 kernels for cassini\nDoing clementine\nHalf time: 1994-03-17 12:00:00.000\nFound 19 kernels for clementine\nDoing dart\nHalf time: 2035-12-06 00:00:00.000\nFound 14 kernels for dart\nDoing dawn\nHalf time: 2013-04-14 00:00:00.000\nFound 21 kernels for dawn\nDoing di\nHalf time: 2005-04-26 12:00:00.000\nFound 16 kernels for di\nDoing ds1\nHalf time: 2000-05-21 11:59:59.500\nFound 11 kernels for ds1\nDoing epoxi\nHalf time: 2008-05-27 00:00:00.000\nFound 12 kernels for epoxi\nDoing em16\nHalf time: 2019-08-07 23:59:59.500\nFound 27 kernels for em16\nDoing grail\nHalf time: 2012-04-29 00:00:00.500\nFound 20 kernels for grail\nDoing hayabusa\nHalf time: 2005-10-15 12:00:00.000\nFound 15 kernels for hayabusa\nDoing insight\nHalf time: 2020-08-24 12:00:00.000\nFound 21 kernels for insight\nDoing juno\nHalf time: 2017-02-08 23:59:58.500\nFound 25 kernels for juno\nDoing ladee\nHalf time: 2031-11-04 11:59:59.000\nFound 12 kernels for ladee\nDoing lro\nHalf time: 2016-04-30 23:59:59.500\nFound 24 kernels for lro\nDoing maven\nHalf time: 2018-07-25 11:59:59.000\nFound 20 kernels for maven\nDoing opportunity\nHalf time: 2010-12-23 00:00:00.500\nFound 23 kernels for opportunity\nDoing spirit\nHalf time: 2006-11-20 12:00:00.000\nFound 24 kernels for spirit\nDoing messenger\nHalf time: 2009-12-15 23:59:59.500\nFound 18 kernels for messenger\nDoing mars2020\nHalf time: 2021-10-13 12:00:00.000\nFound 17 kernels for mars2020\nDoing mex\nHalf time: 2013-03-01 11:59:59.500\nFound 39 kernels for mex\nDoing mgs\nHalf time: 2001-11-03 23:59:59.500\nFound 20 kernels for mgs\nDoing ody\nHalf time: 2012-01-03 12:00:00.500\nFound 14 kernels for ody\nDoing mro\nHalf time: 2014-06-06 11:59:59.500\nFound 20 kernels for mro\nDoing msl\nHalf time: 2017-05-16 23:59:58.500\nFound 50 kernels for msl\nDoing near\nHalf time: 1998-10-14 12:00:00.000\nFound 15 kernels for near\nDoing nh\nHalf time: 2013-01-08 12:00:00.000\nFound 28 kernels for nh\nDoing orex\nHalf time: 2018-11-30 23:59:59.500\n\n\n warnings.warn('ERFA function \"{}\" yielded {}'.format(func_name, wmsg),\n warnings.warn('ERFA function \"{}\" yielded {}'.format(func_name, wmsg),\n warnings.warn('ERFA function \"{}\" yielded {}'.format(func_name, wmsg),\n warnings.warn('ERFA function \"{}\" yielded {}'.format(func_name, wmsg),\n\n\nOSError: SPICE Server request returned status code: {r.status_code}\n\n\n\nNOTE: Any ErfaWarnings above are caused by the LADEE mission using a kernel up to 2050, and the astropy.Time module warns about potential precicision issues regarding unknown leapseconds that will be put in in the future.\n\n\n\nGeneric kernel management\nThere are a few generic kernels that are required for basic illumination calculations as supported by this package.\n\nsource\n\n\ndownload_generic_kernels\n\n download_generic_kernels (overwrite=False)\n\nDownload all kernels as required by generic_kernel_list.\n\ndownload_generic_kernels()\n\n\nsource\n\n\nload_generic_kernels\n\n load_generic_kernels ()\n\nLoad all kernels in generic_kernels list.\nLoads pure planetary bodies meta-kernel without spacecraft data.\nDownloads any missing generic kernels.\n\nspice.kclear()\n\n\nload_generic_kernels()\n\n\nsource\n\n\nshow_loaded_kernels\n\n show_loaded_kernels ()\n\nPrint overview of loaded kernels.\n\nshow_loaded_kernels()\n\n\nfrom nbdev import nbdev_export\n\nnbdev_export()", + "crumbs": [ + "api", + "SPICE Kernels" + ] + }, + { + "objectID": "api/pds.opusapi.html", + "href": "api/pds.opusapi.html", + "title": "OPUSAPI class", + "section": "", + "text": "source\n\nOPUS\n\n OPUS (silent=False)\n\nManage OPUS API requests.\n\nsource\n\n\nOPUSObsID\n\n OPUSObsID (obsid_data)\n\nManage observation IDs from OPUS responses.\n\nsource\n\n\nOPUSImageURL\n\n OPUSImageURL (jsonlist)\n\nManage URLS from the OPUS response.\n\nopus = OPUS()\n\n\nopus.query_image_id(\"FUV2003_363_00_22\")", + "crumbs": [ + "api", + "OPUSAPI class" + ] + }, + { + "objectID": "api/pds.lroc_index.html", + "href": "api/pds.lroc_index.html", + "title": "LROC Index", + "section": "", + "text": "EDR vs RDR etc.\nI cannot distinguish between different data levels for dynamic index URLs yet, as is required for LROC, so for now I only implement the EDR index, pretending it’s the only one!\n\nsource\n\nLROCIndex\n\n LROCIndex ()\n\nInitialize self. See help(type(self)) for accurate signature.\n\nlroc = LROCIndex()\n\n\nlroc.latest_release_folder\n\n'LROLRC_0056A/'\n\n\n\nlroc.latest_release_number\n\n'0056A'\n\n\n\nlroc.latest_index_label_url\n\nURL('https://pds.lroc.asu.edu/data/LRO-L-LROC-2-EDR-V1.0/LROLRC_0056A/INDEX/CUMINDEX.LBL')" + }, + { + "objectID": "api/hirise.html", + "href": "api/hirise.html", + "title": "HiRISE", + "section": "", + "text": "source\n\nOBSID\n\n OBSID (obsid:str)\n\nManage HiRISE observation ids.\nFor example PSP_003092_0985. phase is set to PSP for orbits < 11000, no setting required.\n\n\n\n\nType\nDetails\n\n\n\n\nobsid\nstr\ne.g. PSP_003092_0985\n\n\n\n\nobsid = OBSID(\"PSP_003092_0985\")\nobsid\n\nPSP_003092_0985\n\n\n\nassert obsid.orbit == \"003092\"\n\n\nassert obsid.targetcode == \"0985\"\n\n\nassert obsid.phase == \"PSP\"\n\n\nassert obsid.upper_orbit_folder == \"ORB_003000_003099\"\n\n\nassert obsid.storage_path_stem == \"PSP/ORB_003000_003099/PSP_003092_0985\"\n\n\nsource\n\n\nProductPathfinder\n\n ProductPathfinder (initstr:str, check_url:bool=True)\n\nDetermine paths and URLs for HiRISE RDR products (also EXTRAS.)\nWe use the PDS definition of PRODUCT_ID here, e.g. PSP_003092_0985_RED.\nAttributes jp2_path and label_path get you the official RDR mosaic product, with kind steering if you get the COLOR or the RED product. All other properties go to the RDR/EXTRAS folder. The “PDS” part of the path is handled in the OBSID class.\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\ninitstr\nstr\n\nPRODUCT_ID string, e.g. PSP_003092_0985_RED\n\n\ncheck_url\nbool\nTrue\nfor performance, the user might not want the url check\n\n\n\n\npid = \"ESP_039983_1390_RED\"\n\n\nppf = ProductPathfinder(pid)\n\n\nppf.storage_stem\n\n'ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED'\n\n\n\nppf.local_label_path.exists()\n\nFalse\n\n\n\nppf.edr_storage_stem\n\nPath('EDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED')\n\n\n\nppf.download_label()\n\n\n\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/ESP_039983_1390/ESP_039983_1390_RED.LBL')\n\n\n\nppf.go_to_homepage()\n\n4;1HPS connection to uahirise.org[22;24H Getting https://uahirise.org/ESP_039983_1390 \n\n\n\nppf.homepage\n\n'https://uahirise.org/ESP_039983_1390'\n\n\n\nassert isinstance(ppf.obsid, OBSID)\n\n\nassert ppf.kind == \"RED\"\n\n\nassert ppf.label_fname == \"ESP_039983_1390_RED.LBL\"\n\n\nassert ppf.label_path == Path('RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.LBL')\n\n\n\nPaths and URLS\nEach xxx_path attribute is also available as xxx_url, and accessing the _url parameter immediately checks for its existence on the server.\n\n# little helper to show attributes inside ProductPathfinder object...\ndef _isprop(v):\n return isinstance(v, property)\n\n\ndef _get_properties(classname, substring):\n names = [name for (name, value) in inspect.getmembers(classname, _isprop) if name.endswith(substring)]\n return names\n\n\n# Here I'm checking that all _url versions work, each access checks for existence:\nfor prop in _get_properties(ProductPathfinder, \"_path\"):\n if prop.startswith(\"local_label\"):\n continue\n print(prop)\n print(getattr(ppf, prop))\n urlattr = prop.replace(\"_path\", \"_url\")\n print(urlattr)\n url = getattr(ppf, urlattr)\n print(url)\n\nabrowse_path\nEXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.abrowse.jpg\nabrowse_url\nhttps://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.abrowse.jpg\nbrowse_path\nEXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.browse.jpg\nbrowse_url\nhttps://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.browse.jpg\njp2_path\nRDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.JP2\njp2_url\nhttps://hirise-pds.lpl.arizona.edu/PDS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.JP2\nlabel_path\nRDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.LBL\nlabel_url\nhttps://hirise-pds.lpl.arizona.edu/PDS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.LBL\nnomap_browse_path\nEXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.browse.jpg\nnomap_browse_url\nhttps://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.browse.jpg\nnomap_jp2_path\nEXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.JP2\nnomap_jp2_url\nhttps://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.JP2\nnomap_thumbnail_path\nEXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.thumb.jpg\nnomap_thumbnail_url\nhttps://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.thumb.jpg\nquicklook_path\nEXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.QLOOK.JP2\nquicklook_url\nhttps://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.QLOOK.JP2\nthumbnail_path\nEXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.thumb.jpg\nthumbnail_url\nhttps://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.thumb.jpg\n\n\n\nppf.storage_stem\n\n'ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED'\n\n\n\nppf.nomap_browse_url\n\nURL('https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.browse.jpg')\n\n\n\nppf.abrowse_url\n\nURL('https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.abrowse.jpg')\n\n\n\nppf.nomap_jp2_path\n\n'EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED.NOMAP.JP2'\n\n\n\nsource\n\n\nCOLOR_PRODUCT\n\n COLOR_PRODUCT (obsid)\n\nInitialize self. See help(type(self)) for accurate signature.\n\nsource\n\n\nRGB_NOMAP\n\n RGB_NOMAP (obsid)\n\nInitialize self. See help(type(self)) for accurate signature.\n\nobsid = \"ESP_039983_1390\"\n\n\nrgb = RGB_NOMAP(obsid)\n\n\nrgb.obsid\n\n'ESP_039983_1390'\n\n\n\nrgb.product_id\n\n'ESP_039983_1390_RGB'\n\n\n\nrgb.meta.head()\n\nvolume_id MROHR_0001\nfile_name_specification RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_...\ninstrument_host_id MRO\ninstrument_id HIRISE\nobservation_id ESP_039983_1390\nName: 75508, dtype: object\n\n\n\nrgb.local_path\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/ESP_039983_1390/ESP_039983_1390_RGB.NOMAP.JP2')\n\n\n\nrgb.url\n\nURL('https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RGB.NOMAP.JP2')\n\n\n\nrgb.download(overwrite=False)\n\nFile exists. Use `overwrite=True` to download fresh.\n\n\n\nrgb.read()\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<xarray.DataArray (band: 3, y: 20000, x: 2024)>\ndask.array<open_rasterio-3e88685e58afe3daaabd13b6ff29c609<this-array>, shape=(3, 20000, 2024), dtype=uint16, chunksize=(1, 2024, 2024), chunktype=numpy.ndarray>\nCoordinates:\n * band (band) int64 1 2 3\n * x (x) float64 0.5 1.5 2.5 3.5 ... 2.022e+03 2.022e+03 2.024e+03\n * y (y) float64 0.5 1.5 2.5 3.5 4.5 ... 2e+04 2e+04 2e+04 2e+04\n spatial_ref int64 0\nAttributes:\n scale_factor: 1.0\n add_offset: 0.0xarray.DataArrayband: 3y: 20000x: 2024dask.array<chunksize=(1, 2024, 2024), meta=np.ndarray>\n\n\n\n\n\n\n\n\n\n\n\nArray\nChunk\n\n\n\n\nBytes\n231.63 MiB\n7.81 MiB\n\n\nShape\n(3, 20000, 2024)\n(1, 2024, 2024)\n\n\nDask graph\n30 chunks in 2 graph layers\n\n\nData type\nuint16 numpy.ndarray\n\n\n\n\n 2024 20000 3\n\n\n\n\nCoordinates: (4)band(band)int641 2 3array([1, 2, 3])x(x)float640.5 1.5 2.5 ... 2.022e+03 2.024e+03array([5.0000e-01, 1.5000e+00, 2.5000e+00, ..., 2.0215e+03, 2.0225e+03,\n 2.0235e+03])y(y)float640.5 1.5 2.5 ... 2e+04 2e+04 2e+04array([5.00000e-01, 1.50000e+00, 2.50000e+00, ..., 1.99975e+04, 1.99985e+04,\n 1.99995e+04])spatial_ref()int640GeoTransform :0.0 1.0 0.0 0.0 0.0 1.0array(0)Indexes: (3)bandPandasIndexPandasIndex(Int64Index([1, 2, 3], dtype='int64', name='band'))xPandasIndexPandasIndex(Float64Index([ 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,\n 8.5, 9.5,\n ...\n 2014.5, 2015.5, 2016.5, 2017.5, 2018.5, 2019.5, 2020.5, 2021.5,\n 2022.5, 2023.5],\n dtype='float64', name='x', length=2024))yPandasIndexPandasIndex(Float64Index([ 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5,\n 7.5, 8.5, 9.5,\n ...\n 19990.5, 19991.5, 19992.5, 19993.5, 19994.5, 19995.5, 19996.5,\n 19997.5, 19998.5, 19999.5],\n dtype='float64', name='y', length=20000))Attributes: (2)scale_factor :1.0add_offset :0.0\n\n\n\n\nrgb.show(xslice=slice(1000, 2000), yslice=slice(16000, 18000))\n\n\n\n\n\n\n\n\n \n\n\n\n\n\nsource\n\n\nRGB_NOMAPCollection\n\n RGB_NOMAPCollection (obsids)\n\nClass to deal with a set of RGB_NOMAP products.\n/home/runner/micromamba/envs/my-env/lib/python3.12/site-packages/fastcore/docscrape.py:225: UserWarning: Unknown section Example\n else: warn(msg)\n\nsource\n\n\nSOURCE_PRODUCT\n\n SOURCE_PRODUCT (spid, saveroot=None, check_url=True)\n\nManage SOURCE_PRODUCT id.\n\nobsid = 'ESP_027021_1525_RED'\n\n\nfor i in range(10):\n for ch in [0, 1]:\n spid = f\"{obsid}{i}_{ch}\"\n try:\n SOURCE_PRODUCT(spid).download()\n except ConnectionError:\n pass\n\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\nFile exists. Use `overwrite=True` to download fresh.\n\n\n/tmp/ipykernel_1172729/2293453911.py:88: UserWarning: https://hirise-pds.lpl.arizona.edu/PDS/EDR/ESP/ORB_027000_027099/ESP_027021_1525/ESP_027021_1525_RED9_0.IMG does not exist on the server.\n warnings.warn(f\"{u} does not exist on the server.\")\n/tmp/ipykernel_1172729/2293453911.py:88: UserWarning: https://hirise-pds.lpl.arizona.edu/PDS/EDR/ESP/ORB_027000_027099/ESP_027021_1525/ESP_027021_1525_RED9_1.IMG does not exist on the server.\n warnings.warn(f\"{u} does not exist on the server.\")\n\n\n\nsp = SOURCE_PRODUCT(\"ESP_027021_1525_RED0_0\")\n\n\nsp.local_path\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/ESP_027021_1525/ESP_027021_1525_RED0_0.IMG')\n\n\n\nsp.download()\n\nFile exists. Use `overwrite=True` to download fresh.\n\n\n\nsp.stitched_cube_path\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/ESP_027021_1525/ESP_027021_1525_RED0.cub')\n\n\n\nsp.url\n\nURL('https://hirise-pds.lpl.arizona.edu/PDS/EDR/ESP/ORB_027000_027099/ESP_027021_1525/ESP_027021_1525_RED0_0.IMG')\n\n\n\nsp.remote_path\n\nPath('EDR/ESP/ORB_027000_027099/ESP_027021_1525/ESP_027021_1525_RED0_0.IMG')\n\n\n\nsp.local_path\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/ESP_027021_1525/ESP_027021_1525_RED0_0.IMG')\n\n\n\nsp.channel\n\n'0'\n\n\n\nsp.ccd\n\n'RED0'\n\n\n\nsp.color\n\n'RED'\n\n\n\nsp.ccdno\n\n'0'\n\n\n\nsp.spid\n\n'ESP_027021_1525_RED0_0'\n\n\n\nsp\n\nSOURCE_PRODUCT: ESP_027021_1525_RED0_0\n\n\n\nsp.fname\n\n'ESP_027021_1525_RED0_0.IMG'\n\n\n\nsp.local_cube\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/ESP_027021_1525/ESP_027021_1525_RED0_0.cub')\n\n\n\nsp.stitched_cube_name\n\n'ESP_027021_1525_RED0.cub'\n\n\n\nsp.stitched_cube_path.exists()\n\nTrue\n\n\n\nsource\n\n\nRED_PRODUCT\n\n RED_PRODUCT (obsid, ccdno, channel, **kwargs)\n\nThis exists to support creating a RED_PRODUCT_ID from parts of a SOURCE_PRODUCT id.\n\nRED_PRODUCT(\"ESP_027021_1525\", 4, 0).channel\n\n'0'\n\n\n\nrpid = RED_PRODUCT(\"ESP_039983_1390\", \"4\", \"0\")\nrpid.spid\n\n'ESP_039983_1390_RED4_0'\n\n\n\nrpid.fname\n\n'ESP_039983_1390_RED4_0.IMG'\n\n\n\nrpid.url\n\nURL('https://hirise-pds.lpl.arizona.edu/PDS/EDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RED4_0.IMG')\n\n\n\nrpid.download()\n\nFile exists. Use `overwrite=True` to download fresh.\n\n\n\nsource\n\n\nBG_PRODUCT\n\n BG_PRODUCT (obsid, ccdno, channel)\n\nManage SOURCE_PRODUCT id.\n\nsource\n\n\nIR_PRODUCT\n\n IR_PRODUCT (obsid, ccdno, channel)\n\nManage SOURCE_PRODUCT id.\n\nsource\n\n\nRedMosaic\n\n RedMosaic (obsid)\n\nInitialize self. See help(type(self)) for accurate signature.\n\nobsid = \"ESP_027021_1525\"\n\n\nred = RedMosaic(obsid)\n\n\n!ls {red.local_path.parent}\n\nB01_009958_1524_XI_27S347W.cal.cub ESP_027021_1525_RED4_1.IMG\nB01_009958_1524_XI_27S347W.lev2.cub ESP_027021_1525_RED4.cub\ncube2.lis ESP_027021_1525_RED4.map.cub\ncube.lis ESP_027021_1525_RED4.norm.cub\nESP_027021_1525_RED0_0.cal.cub ESP_027021_1525_RED5_0.cal.cub\nESP_027021_1525_RED0_0.cub ESP_027021_1525_RED5_0.cub\nESP_027021_1525_RED0_0.hical.log ESP_027021_1525_RED5_0.hical.log\nESP_027021_1525_RED0_0.IMG ESP_027021_1525_RED5_0.IMG\nESP_027021_1525_RED0_1.cal.cub ESP_027021_1525_RED5_1.cal.cub\nESP_027021_1525_RED0_1.cub ESP_027021_1525_RED5_1.cub\nESP_027021_1525_RED0_1.hical.log ESP_027021_1525_RED5_1.hical.log\nESP_027021_1525_RED0_1.IMG ESP_027021_1525_RED5_1.IMG\nESP_027021_1525_RED0.cub ESP_027021_1525_RED5.cub\nESP_027021_1525_RED0.map.cub ESP_027021_1525_RED5.map.cub\nESP_027021_1525_RED0.norm.cub ESP_027021_1525_RED5.map.cub.aux.xml\nESP_027021_1525_RED1_0.cal.cub ESP_027021_1525_RED5.norm.cub\nESP_027021_1525_RED1_0.cub ESP_027021_1525_RED6_0.cal.cub\nESP_027021_1525_RED1_0.hical.log ESP_027021_1525_RED6_0.cub\nESP_027021_1525_RED1_0.IMG ESP_027021_1525_RED6_0.hical.log\nESP_027021_1525_RED1_1.cal.cub ESP_027021_1525_RED6_0.IMG\nESP_027021_1525_RED1_1.cub ESP_027021_1525_RED6_1.cal.cub\nESP_027021_1525_RED1_1.hical.log ESP_027021_1525_RED6_1.cub\nESP_027021_1525_RED1_1.IMG ESP_027021_1525_RED6_1.hical.log\nESP_027021_1525_RED1.cub ESP_027021_1525_RED6_1.IMG\nESP_027021_1525_RED1.map.cub ESP_027021_1525_RED6.cub\nESP_027021_1525_RED1.norm.cub ESP_027021_1525_RED6.map.cub\nESP_027021_1525_RED2_0.cal.cub ESP_027021_1525_RED6.norm.cub\nESP_027021_1525_RED2_0.cub ESP_027021_1525_RED7_0.cal.cub\nESP_027021_1525_RED2_0.hical.log ESP_027021_1525_RED7_0.cub\nESP_027021_1525_RED2_0.IMG ESP_027021_1525_RED7_0.hical.log\nESP_027021_1525_RED2_1.cal.cub ESP_027021_1525_RED7_0.IMG\nESP_027021_1525_RED2_1.cub ESP_027021_1525_RED7_1.cal.cub\nESP_027021_1525_RED2_1.hical.log ESP_027021_1525_RED7_1.cub\nESP_027021_1525_RED2_1.IMG ESP_027021_1525_RED7_1.hical.log\nESP_027021_1525_RED2.cub ESP_027021_1525_RED7_1.IMG\nESP_027021_1525_RED2.map.cub ESP_027021_1525_RED7.cub\nESP_027021_1525_RED2.norm.cub ESP_027021_1525_RED7.map.cub\nESP_027021_1525_RED3_0.cal.cub ESP_027021_1525_RED7.norm.cub\nESP_027021_1525_RED3_0.cub ESP_027021_1525_RED8_0.cal.cub\nESP_027021_1525_RED3_0.hical.log ESP_027021_1525_RED8_0.cub\nESP_027021_1525_RED3_0.IMG ESP_027021_1525_RED8_0.hical.log\nESP_027021_1525_RED3_1.cal.cub ESP_027021_1525_RED8_0.IMG\nESP_027021_1525_RED3_1.cub ESP_027021_1525_RED8_1.cal.cub\nESP_027021_1525_RED3_1.hical.log ESP_027021_1525_RED8_1.cub\nESP_027021_1525_RED3_1.IMG ESP_027021_1525_RED8_1.hical.log\nESP_027021_1525_RED3.cub ESP_027021_1525_RED8_1.IMG\nESP_027021_1525_RED3.map.cub ESP_027021_1525_RED8.cub\nESP_027021_1525_RED3.norm.cub ESP_027021_1525_RED8.map.cub\nESP_027021_1525_RED4_0.cal.cub ESP_027021_1525_RED8.norm.cub\nESP_027021_1525_RED4_0.cub ESP_027021_1525_RED.LBL\nESP_027021_1525_RED4_0.hical.log normalized.lis\nESP_027021_1525_RED4_0.IMG point.txt\nESP_027021_1525_RED4_1.cal.cub print.prt\nESP_027021_1525_RED4_1.cub set_overlaps.txt\nESP_027021_1525_RED4_1.hical.log", + "crumbs": [ + "api", + "HiRISE" + ] + }, + { + "objectID": "api/cassini_uvis.html", + "href": "api/cassini_uvis.html", + "title": "UVIS", + "section": "", + "text": "get_index(\"cassini.uvis\", \"index\")\n\n\n\n\n\n\n\n\n\nFILE_NAME\nOBSERVATION_TYPE\nSTART_TIME\nSTOP_TIME\nTARGET_NAME\nDATA_SET_ID\nSPACECRAFT_CLOCK_START_COUNT\nSPACECRAFT_CLOCK_STOP_COUNT\nINTEGRATION_DURATION\nCOMPRESSION_TYPE\n...\nSUB_SOLAR_LONGITUDE\nSUB_SPACECRAFT_LATITUDE\nSUB_SPACECRAFT_LONGITUDE\nPHASE_ANGLE\nEMISSION_ANGLE\nSOLAR_INCIDENCE_ANGLE\nCENTRAL_BODY_DISTANCE\nDWELL_TIME\nH_LEVEL\nD_LEVEL\n\n\n\n\n0\n/COUVIS_0001/DATA/D1999_007/EUV1999_007_17_05.LBL\nUSTARE\n1999-01-07 17:05:01.949\n1999-01-07 17:08:37.949\n<NA>\nCO-J-UVIS-2-SPEC-V1.2\n1/1294420183.000\nUNK\n4.0\nNONE\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n-999\n<NA>\n<NA>\n\n\n1\n/COUVIS_0001/DATA/D1999_007/EUV1999_007_17_08.LBL\nUSTARE\n1999-01-07 17:08:51.947\n1999-01-07 17:12:27.947\n<NA>\nCO-J-UVIS-2-SPEC-V1.2\n1/1294420413.000\nUNK\n4.0\nNONE\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n-999\n<NA>\n<NA>\n\n\n2\n/COUVIS_0001/DATA/D1999_007/FUV1999_007_16_57.LBL\nUSTARE\n1999-01-07 16:57:21.952\n1999-01-07 17:00:57.952\n<NA>\nCO-J-UVIS-2-SPEC-V1.2\n1/1294419723.000\nUNK\n4.0\nNONE\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n-999\n<NA>\n<NA>\n\n\n3\n/COUVIS_0001/DATA/D1999_007/FUV1999_007_17_01.LBL\nUSTARE\n1999-01-07 17:01:11.950\n1999-01-07 17:04:47.950\n<NA>\nCO-J-UVIS-2-SPEC-V1.2\n1/1294419953.000\nUNK\n4.0\nNONE\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n-999\n<NA>\n<NA>\n\n\n4\n/COUVIS_0001/DATA/D1999_007/HDAC1999_007_16_31...\nUHDAC\n1999-01-07 16:31:07.962\n1999-01-07 16:31:11.962\n<NA>\nCO-J-UVIS-2-SSB-V1.2\n1/1294418149.000\nUNK\n-999.0\nNONE\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n1\n(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)\n(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)\n\n\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n\n\n203240\n/COUVIS_0060/DATA/D2017_258/FUV2017_258_04_31.LBL\n<NA>\n2017-09-15 04:31:53.005\n2017-09-15 09:04:56.755\nSOLAR WIND\nCO-S-UVIS-2-CUBE-V1.4\n1/1884145299.160\nUNK\n8191.875\nSQRT_9\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n-999\n<NA>\n<NA>\n\n\n203241\n/COUVIS_0060/DATA/D2017_258/FUV2017_258_07_00.LBL\n<NA>\n2017-09-15 07:00:27.697\n2017-09-15 07:13:40.447\nSOLAR WIND\nCO-S-UVIS-2-SPEC-V1.4\n1/1884154214.096\nUNK\n2.625\nSQRT_9\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n-999\n<NA>\n<NA>\n\n\n203242\n/COUVIS_0060/DATA/D2017_258/FUV2017_258_07_15.LBL\n<NA>\n2017-09-15 07:15:04.442\n2017-09-15 10:31:51.692\nSOLAR WIND\nCO-S-UVIS-2-SPEC-V1.4\n1/1884155091.032\nUNK\n2.625\nSQRT_9\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n-999\n<NA>\n<NA>\n\n\n203243\n/COUVIS_0060/DATA/D2017_258/HDAC2017_258_02_14...\n<NA>\n2017-09-15 02:14:02.433\n2017-09-15 02:14:06.433\nSOLAR WIND\nCO-S-UVIS-2-SSB-V1.4\n1/1884137029.000\nUNK\n-999.0\nNONE\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n1\n(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)\n(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)\n\n\n203244\n/COUVIS_0060/DATA/D2017_258/HDAC2017_258_02_15...\n<NA>\n2017-09-15 02:15:25.058\n2017-09-15 02:17:33.058\nSOLAR WIND\nCO-S-UVIS-2-SSB-V1.4\n1/1884137111.160\nUNK\n-999.0\nNONE\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n32\n(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)\n(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)\n\n\n\n\n203245 rows × 28 columns\n\n\n\n\n\nsource\n\nDataManager\n\n DataManager (pid:str, skip_download:bool=False)\n\nInitialize self. See help(type(self)) for accurate signature.\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\npid\nstr\n\nProduct ID. If longer than PDS_ID, will be cut in attribute pds_id\n\n\nskip_download\nbool\nFalse\nskip trying to download\n\n\n\n\npid = \"EUV2002_198_03_26_54_UVIS_C33ST_SPICARAST002_PRIME\"\n\n\ndm = DataManager(pid)\n\n\ndm.raw_label_url\n\nURL('https://opus.pds-rings.seti.org/holdings/volumes/COUVIS_0xxx/COUVIS_0004/DATA/D2002_198/EUV2002_198_03_26.LBL')\n\n\n\nassert dm.pid == pid\n\nPDS data is only stored under the first 17 characters of any UVIS-internal product id.\n\nassert dm.pds_id == pid[:17]\n\nThe originally used product ID pid will be stored under original_pid.txt in the data folder:\n\ndm.original_pid_file\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2002_198_03_26/original_pid.txt')\n\n\nThe OPUS result file will be stored as a TOML file:\n\ndm.results_file\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2002_198_03_26/urls.toml')\n\n\n\ndm.download(overwrite=False)\n\nLocal files exists. Use `overwrite=True` to download fresh.\n\n\n\ndm.raw_data_path\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2002_198_03_26/EUV2002_198_03_26.DAT')\n\n\n\ndm.calib_corr_path\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2002_198_03_26/EUV2002_198_03_26_CAL_3.DAT')\n\n\n\nsource\n\n\nget_label_path\n\n get_label_path (pid)\n\n\nsource\n\n\nget_data_path\n\n get_data_path (pid, skip_download=False)\n\n\nget_data_path(pid)\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2002_198_03_26/EUV2002_198_03_26.DAT')\n\n\n\nget_label_path(pid)\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2002_198_03_26/EUV2002_198_03_26.LBL')\n\n\n\nsource\n\n\nget_user_guide\n\n get_user_guide ()\n\n\nget_user_guide()\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/uvis_user_guide.pdf')", + "crumbs": [ + "api", + "UVIS" + ] + }, + { + "objectID": "api/geotools.html", + "href": "api/geotools.html", + "title": "Geotools", + "section": "", + "text": "ul = Upper Left\nlr = LowerRight\n\n\nsource\n\n\n\n pixel_to_meter (sample, line, geotransform, shift=False)\n\nprovide point in map projection coordinates.\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\nsample\n\n\n\n\n\nline\n\n\n\n\n\ngeotransform\n\n\n\n\n\nshift\nbool\nFalse\n\n\n\nReturns\ntuple (x,y) coordinates in the projection of the dataset\n\n\n\n\n\n\nsource\n\n\n\n\n shift_to_center (x, y, geotransform)\n\n\nsource\n\n\n\n\n debug_srs (projection)\n\nCorrect wrong scale_factor in PolarStereographic data.\nSome PolarStereographic data have a 0 as a scale_factor in the projection (mostly MOLA), which is being corrected here. TODO: Check for being PolarStereographic before doing this!\n\nsource\n\n\n\n\n get_sun_angles (spicer, img)\n\nCalculate solar azimuth and incidence.\nBy requiring a spicer object for this function, it becomes independent from the solar system object where the calculations are made.\n\n\n\n\n\n\n\n\n\nType\nDetails\n\n\n\n\nspicer\nspicer.Spicer\nneeds to be setup for time, but spoint is set from img.center in here.\n\n\nimg\ngeotools.ImgData\nThe image data of which the center point serves as the start point.\n\n\nReturns\ntuple(float, float)\nSolar azimuth, incidence [degrees]\n\n\n\n\nsource\n\n\n\n\n calculate_image_north_azimuth (img, zero='right')\n\n\nsource\n\n\n\n\n get_north_shifted_point (img, offset=0.001)\n\nIncreasing the latitude is a sure way of getting north.\n\nsource\n\n\n\n\n calculate_image_azimuth (origPoint, newPoint, zero='right')\n\nCalculate azimuth angle between 2 image points.\nBeware that this function calculates trigonometric angles. If the points are from an image that has (0, 0) in the upper left, this means that the angles increase clockwise. That is why, for example, for an HiRISE image, the return of this function matches the angle rotation definition for HiRISE data.\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\norigPoint\n\n\n\n\n\nnewPoint\n\n\n\n\n\nzero\nstr\nright\n\n\n\nReturns\nazimuth: \n\nAzimuth angle\n\n\n\n/home/runner/micromamba/envs/my-env/lib/python3.12/site-packages/fastcore/docscrape.py:225: UserWarning: Unknown section Requires\n else: warn(msg)\n\nsource\n\n\n\n\n Point (sample=None, line=None, x=None, y=None, lon=None, lat=None,\n geotrans=None, proj=None)\n\nPoint class to manage pixel and map points and their transformations.\n\nsource\n\n\n\n\n Window (ulPoint=None, lrPoint=None, centerPoint=None, width=None)\n\nclass to manage a window made of corner Points (objects of Point())\nwhen using width, only quadratic windows supported currently >>> p1 = Point(0, 1) >>> p2 = Point(10,20)\n\nsource\n\n\n\n\n ImgData (fname=None)\n\ndocstring for ImgData\n\n# todo: Fix missing MOLA class\n#| export\n# class CTX(ImgData):\n# \"\"\"docstring for CTX\"\"\"\n\n# def __init__(self, fname):\n# ImgData.__init__(self, fname)\n\n# def add_mola_contours(self):\n# self.window_coords_to_lonlat()\n# mola = MOLA()\n# mola.window = self.window.copy()\n# mola.window_coords_to_pixel()\n# mola.read_window(mola.window)\n# mola.data = mola.data - mola.data.mean()\n# fig = plt.figure(figsize=(10, 10))\n# ax = fig.add_subplot(111)\n# plt.gray()\n# ax.imshow(self.data, extent=self.window.get_extent(self.dataset))\n# CS = ax.contour(\n# mola.data,\n# 8,\n# cmap=cm.jet,\n# extent=self.window.get_extent(self.dataset),\n# origin=\"image\",\n# )\n# plt.clabel(CS, fontsize=13, inline=1)\n# ax.set_xlabel(\"Polar stereographic X [km]\")\n# ax.set_ylabel(\"Polar stereographic Y [km]\")\n# ax.set_title(\"CTX: \" + os.path.basename(self.fname))\n# self.ax = ax\n# plt.show()\n\n\n# def combine_ctx_and_mola(ctxFilename, ctxSample, ctxLine, ctxWidth):\n# \"\"\"combine CTX and MOLA data.\n#\n# MOLA and CTX data will be combined with these tools.\n# User shall provide line,sample center coordinate of CTX file ROI to\n# define distance in meters from southpole.\n# \"\"\"\n#\n# ctx = CTX(ctxFilename)\n# mola = MOLA()\n# ctxULsample, ctxULline, ctxLRsample, ctxLRline = \\\n# get_corners_from_center(ctxSample, ctxLine, ctxWidth)\n# ulX,ulY = get_coords_from_pixels(ctxDS, ctxULsample, ctxULline)\n# lrX,lrY = get_coords_from_pixels(ctxDS, ctxLRsample, ctxLRline)\n#\n# molaULsample,molaULline = get_pixels_from_coords(molaDS,ulX,ulY)\n# molaLRsample,molaLRline = get_pixels_from_coords(molaDS,lrX,lrY)\n# print(ctxULsample, ctxULline, ctxLRsample, ctxLRline)\n# print(molaULsample, molaULline,molaLRsample, molaLRline)\n# print(ulX,ulY,lrX,lrY)\n# ctxData = ctxDS.ReadAsArray(ctxULsample,ctxULline,ctxWidth,ctxWidth)\n# molaData = molaDS.ReadAsArray(int(molaULsample)+1,int(molaULline),\n# int(molaLRsample - molaULsample),\n# int(molaLRline - molaULline))\n#\n# molaData = molaData - molaData.mean()\n#\n# # x = np.arange(ulX,lrX)\n# # y = np.arange(lrY,ulY)\n# # X, Y = np.meshgrid(x,y)\n# # plotting\n# fig = plt.figure(figsize=(10,10))\n# ax = fig.add_subplot(111)\n# plt.gray()\n# ax.imshow(ctxData, extent=(min(ulX,lrX),max(ulX,lrX),min(ulY,lrY),\n# max(ulY,lrY)))\n# CS = ax.contour(molaData, 20, cmap = cm.jet,\n# extent=(min(ulX,lrX),\n# max(ulX,lrX),\n# min(ulY,lrY),\n# max(ulY,lrY)),\n# origin='image' )\n# plt.clabel(CS,fontsize=9, inline=1)\n# plt.show()\n\n# def main(argv=None):\n# \"\"\"docstring for main\"\"\"\n# from mayavi import mlab\n\n# if argv is None:\n# argv = sys.argv\n\n# x1 = x2 = y1 = y2 = 0\n# fname = \"\"\n# try:\n# fname = argv[1]\n# x1, x2, y1, y2 = [int(i) for i in argv[2:]]\n# except:\n# print(\"Usage: {0} fname x1 x2 y1 y2\".format(argv[0]))\n\n# print(x1, x2, y1, y2)\n# ds = gdal.Open(fname)\n# band = ds.GetRasterBand(1)\n# STORED_VALUE = band.ReadAsArray(x1, y1, x2 - x1, y2 - y1)\n# ds = 0\n\n# # PDS label infos:\n# SCALING_FACTOR = 0.25\n# OFFSET = -8000\n# topo = (STORED_VALUE * SCALING_FACTOR) + OFFSET\n# mlab.surf(topo, warp_scale=1 / 115.0, vmin=1700)\n# mlab.colorbar(orientation=\"vertical\", title=\"Height [m]\", label_fmt=\"%4.0f\")\n# mlab.show()", + "crumbs": [ + "api", + "Geotools" + ] + }, + { + "objectID": "api/geotools.html#abbreviations", + "href": "api/geotools.html#abbreviations", + "title": "Geotools", + "section": "", + "text": "ul = Upper Left\nlr = LowerRight\n\n\nsource\n\n\n\n pixel_to_meter (sample, line, geotransform, shift=False)\n\nprovide point in map projection coordinates.\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\nsample\n\n\n\n\n\nline\n\n\n\n\n\ngeotransform\n\n\n\n\n\nshift\nbool\nFalse\n\n\n\nReturns\ntuple (x,y) coordinates in the projection of the dataset\n\n\n\n\n\n\nsource\n\n\n\n\n shift_to_center (x, y, geotransform)\n\n\nsource\n\n\n\n\n debug_srs (projection)\n\nCorrect wrong scale_factor in PolarStereographic data.\nSome PolarStereographic data have a 0 as a scale_factor in the projection (mostly MOLA), which is being corrected here. TODO: Check for being PolarStereographic before doing this!\n\nsource\n\n\n\n\n get_sun_angles (spicer, img)\n\nCalculate solar azimuth and incidence.\nBy requiring a spicer object for this function, it becomes independent from the solar system object where the calculations are made.\n\n\n\n\n\n\n\n\n\nType\nDetails\n\n\n\n\nspicer\nspicer.Spicer\nneeds to be setup for time, but spoint is set from img.center in here.\n\n\nimg\ngeotools.ImgData\nThe image data of which the center point serves as the start point.\n\n\nReturns\ntuple(float, float)\nSolar azimuth, incidence [degrees]\n\n\n\n\nsource\n\n\n\n\n calculate_image_north_azimuth (img, zero='right')\n\n\nsource\n\n\n\n\n get_north_shifted_point (img, offset=0.001)\n\nIncreasing the latitude is a sure way of getting north.\n\nsource\n\n\n\n\n calculate_image_azimuth (origPoint, newPoint, zero='right')\n\nCalculate azimuth angle between 2 image points.\nBeware that this function calculates trigonometric angles. If the points are from an image that has (0, 0) in the upper left, this means that the angles increase clockwise. That is why, for example, for an HiRISE image, the return of this function matches the angle rotation definition for HiRISE data.\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\norigPoint\n\n\n\n\n\nnewPoint\n\n\n\n\n\nzero\nstr\nright\n\n\n\nReturns\nazimuth: \n\nAzimuth angle\n\n\n\n/home/runner/micromamba/envs/my-env/lib/python3.12/site-packages/fastcore/docscrape.py:225: UserWarning: Unknown section Requires\n else: warn(msg)\n\nsource\n\n\n\n\n Point (sample=None, line=None, x=None, y=None, lon=None, lat=None,\n geotrans=None, proj=None)\n\nPoint class to manage pixel and map points and their transformations.\n\nsource\n\n\n\n\n Window (ulPoint=None, lrPoint=None, centerPoint=None, width=None)\n\nclass to manage a window made of corner Points (objects of Point())\nwhen using width, only quadratic windows supported currently >>> p1 = Point(0, 1) >>> p2 = Point(10,20)\n\nsource\n\n\n\n\n ImgData (fname=None)\n\ndocstring for ImgData\n\n# todo: Fix missing MOLA class\n#| export\n# class CTX(ImgData):\n# \"\"\"docstring for CTX\"\"\"\n\n# def __init__(self, fname):\n# ImgData.__init__(self, fname)\n\n# def add_mola_contours(self):\n# self.window_coords_to_lonlat()\n# mola = MOLA()\n# mola.window = self.window.copy()\n# mola.window_coords_to_pixel()\n# mola.read_window(mola.window)\n# mola.data = mola.data - mola.data.mean()\n# fig = plt.figure(figsize=(10, 10))\n# ax = fig.add_subplot(111)\n# plt.gray()\n# ax.imshow(self.data, extent=self.window.get_extent(self.dataset))\n# CS = ax.contour(\n# mola.data,\n# 8,\n# cmap=cm.jet,\n# extent=self.window.get_extent(self.dataset),\n# origin=\"image\",\n# )\n# plt.clabel(CS, fontsize=13, inline=1)\n# ax.set_xlabel(\"Polar stereographic X [km]\")\n# ax.set_ylabel(\"Polar stereographic Y [km]\")\n# ax.set_title(\"CTX: \" + os.path.basename(self.fname))\n# self.ax = ax\n# plt.show()\n\n\n# def combine_ctx_and_mola(ctxFilename, ctxSample, ctxLine, ctxWidth):\n# \"\"\"combine CTX and MOLA data.\n#\n# MOLA and CTX data will be combined with these tools.\n# User shall provide line,sample center coordinate of CTX file ROI to\n# define distance in meters from southpole.\n# \"\"\"\n#\n# ctx = CTX(ctxFilename)\n# mola = MOLA()\n# ctxULsample, ctxULline, ctxLRsample, ctxLRline = \\\n# get_corners_from_center(ctxSample, ctxLine, ctxWidth)\n# ulX,ulY = get_coords_from_pixels(ctxDS, ctxULsample, ctxULline)\n# lrX,lrY = get_coords_from_pixels(ctxDS, ctxLRsample, ctxLRline)\n#\n# molaULsample,molaULline = get_pixels_from_coords(molaDS,ulX,ulY)\n# molaLRsample,molaLRline = get_pixels_from_coords(molaDS,lrX,lrY)\n# print(ctxULsample, ctxULline, ctxLRsample, ctxLRline)\n# print(molaULsample, molaULline,molaLRsample, molaLRline)\n# print(ulX,ulY,lrX,lrY)\n# ctxData = ctxDS.ReadAsArray(ctxULsample,ctxULline,ctxWidth,ctxWidth)\n# molaData = molaDS.ReadAsArray(int(molaULsample)+1,int(molaULline),\n# int(molaLRsample - molaULsample),\n# int(molaLRline - molaULline))\n#\n# molaData = molaData - molaData.mean()\n#\n# # x = np.arange(ulX,lrX)\n# # y = np.arange(lrY,ulY)\n# # X, Y = np.meshgrid(x,y)\n# # plotting\n# fig = plt.figure(figsize=(10,10))\n# ax = fig.add_subplot(111)\n# plt.gray()\n# ax.imshow(ctxData, extent=(min(ulX,lrX),max(ulX,lrX),min(ulY,lrY),\n# max(ulY,lrY)))\n# CS = ax.contour(molaData, 20, cmap = cm.jet,\n# extent=(min(ulX,lrX),\n# max(ulX,lrX),\n# min(ulY,lrY),\n# max(ulY,lrY)),\n# origin='image' )\n# plt.clabel(CS,fontsize=9, inline=1)\n# plt.show()\n\n# def main(argv=None):\n# \"\"\"docstring for main\"\"\"\n# from mayavi import mlab\n\n# if argv is None:\n# argv = sys.argv\n\n# x1 = x2 = y1 = y2 = 0\n# fname = \"\"\n# try:\n# fname = argv[1]\n# x1, x2, y1, y2 = [int(i) for i in argv[2:]]\n# except:\n# print(\"Usage: {0} fname x1 x2 y1 y2\".format(argv[0]))\n\n# print(x1, x2, y1, y2)\n# ds = gdal.Open(fname)\n# band = ds.GetRasterBand(1)\n# STORED_VALUE = band.ReadAsArray(x1, y1, x2 - x1, y2 - y1)\n# ds = 0\n\n# # PDS label infos:\n# SCALING_FACTOR = 0.25\n# OFFSET = -8000\n# topo = (STORED_VALUE * SCALING_FACTOR) + OFFSET\n# mlab.surf(topo, warp_scale=1 / 115.0, vmin=1700)\n# mlab.colorbar(orientation=\"vertical\", title=\"Height [m]\", label_fmt=\"%4.0f\")\n# mlab.show()", + "crumbs": [ + "api", + "Geotools" + ] + }, + { + "objectID": "api/pds.apps.html", + "href": "api/pds.apps.html", + "title": "Apps", + "section": "", + "text": "source\n\nfind_indexes\n\n find_indexes (instrument:str)\n\nFind existing indexes for an instrument.\n\n\n\n\nType\nDetails\n\n\n\n\ninstrument\nstr\nDotted mission.instrument key, e.g. cassini.iss\n\n\nReturns\nlist\nList of configured index names\n\n\n\n\nfind_indexes(\"cassini.iss\")\n\n['index', 'inventory', 'moon_summary', 'ring_summary', 'saturn_summary']\n\n\n\nfind_indexes(\"mro.ctx\")\n\n['edr']\n\n\n\nsource\n\n\nget_index\n\n get_index (instr:str, index_name:str='', refresh:bool=True,\n force:bool=False)\n\nExample: get_index(“cassini.iss”, “index”)\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\ninstr\nstr\n\nDotted instrument index, e.g. cassini.iss\n\n\nindex_name\nstr\n\nIndex name, for exmample ‘moon_summary. Optional’\n\n\nrefresh\nbool\nTrue\nswitch to refresh an index (i.e. download if update available).Set to False for faster return time to avoid web scraping\n\n\nforce\nbool\nFalse\nswitch off for faster return time.\n\n\nReturns\nDataFrame\n\nThe PDS index convert to pandas DataFrame\n\n\n\n\ninstr = \"cassini.iss\"\nindex_name = \"moon_summary\"\n\n\nindex = get_index(instr, index_name, refresh=False)\n\n\nindex\n\n\n\n\n\n\n\n\n\nVOLUME_ID\nFILE_SPECIFICATION_NAME\nOPUS_ID\nTARGET_NAME\nMINIMUM_PLANETOCENTRIC_LATITUDE\nMAXIMUM_PLANETOCENTRIC_LATITUDE\nMINIMUM_PLANETOGRAPHIC_LATITUDE\nMAXIMUM_PLANETOGRAPHIC_LATITUDE\nMINIMUM_IAU_LONGITUDE\nMAXIMUM_IAU_LONGITUDE\n...\nMAXIMUM_EMISSION_ANGLE\nSUB_SOLAR_PLANETOCENTRIC_LATITUDE\nSUB_SOLAR_PLANETOGRAPHIC_LATITUDE\nSUB_OBSERVER_PLANETOCENTRIC_LATITUDE\nSUB_OBSERVER_PLANETOGRAPHIC_LATITUDE\nSUB_SOLAR_IAU_LONGITUDE\nSUB_OBSERVER_IAU_LONGITUDE\nCENTER_RESOLUTION\nCENTER_DISTANCE\nCENTER_PHASE_ANGLE\n\n\n\n\n0\nCOISS_2001\ndata/1454725799_1455008789/N1454725799_1.LBL\nco-iss-n1454725799\nRHEA\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n-999.0\n-25.206\n-25.442\n-16.566\n-16.558\n183.907\n252.947\n423.6356\n70701354.366\n64.429\n\n\n1\nCOISS_2001\ndata/1454725799_1455008789/N1454725799_1.LBL\nco-iss-n1454725799\nHELENE\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n-999.0\n-25.532\n-50.716\n-16.532\n-36.57\n148.17\n217.149\n424.36902\n70823757.002\n64.345\n\n\n2\nCOISS_2001\ndata/1454725799_1455008789/N1454725799_1.LBL\nco-iss-n1454725799\nTELESTO\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n-999.0\n-26.061\n-51.51\n-15.639\n-21.616\n189.199\n257.807\n424.28746\n70810144.519\n64.28\n\n\n3\nCOISS_2001\ndata/1454725799_1455008789/N1454726579_1.LBL\nco-iss-n1454726579\nTITAN\n-36.111\n-36.111\n-36.111\n-36.111\n0.0\n360.0\n...\n54.704\n-25.325\n-25.325\n-16.28\n-16.28\n340.092\n47.855\n428.89673\n71579395.066\n63.37\n\n\n4\nCOISS_2001\ndata/1454725799_1455008789/N1454727359_1.LBL\nco-iss-n1454727359\nHYPERION\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n-999.0\n11.777\n25.907\n44.104\n57.544\n173.985\n237.769\n418.94545\n69918606.586\n63.093\n\n\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n\n\n385714\nCOISS_2116\ndata/1884017637_1884113741/N1884017911_1.LBL\nco-iss-n1884017911\nTITAN\n-14.352\n72.101\n-14.352\n72.101\n229.956\n329.975\n...\n89.069\n26.644\n26.644\n23.599\n23.599\n32.084\n299.389\n4.64069\n774493.2\n81.887\n\n\n385715\nCOISS_2116\ndata/1884017637_1884113741/N1884018021_1.LBL\nco-iss-n1884018021\nTITAN\n-14.597\n71.882\n-14.597\n71.882\n230.932\n330.255\n...\n88.913\n26.644\n26.644\n23.594\n23.594\n32.107\n299.415\n4.64263\n774816.731\n81.888\n\n\n385716\nCOISS_2116\ndata/1884017637_1884113741/N1884018579_1.LBL\nco-iss-n1884018579\nTITAN\n-14.435\n72.643\n-14.435\n72.643\n228.942\n330.644\n...\n88.869\n26.644\n26.644\n23.57\n23.57\n32.217\n299.536\n9.30328\n776321.466\n81.889\n\n\n385717\nCOISS_2116\ndata/1884017637_1884113741/N1884091792_1.LBL\nco-iss-n1884091792\nDAPHNIS\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n-999.0\n26.684\n39.966\n25.321\n38.64\n294.939\n124.641\n4.56619\n762060.157\n127.157\n\n\n385718\nCOISS_2116\ndata/1884017637_1884113741/N1884109343_1.LBL\nco-iss-n1884109343\nPANDORA\n40.384\n63.749\n56.973\n76.952\n0.0\n360.0\n...\n62.435\n26.686\n49.386\n33.095\n53.259\n335.495\n142.016\n3.45805\n577120.582\n118.858\n\n\n\n\n385719 rows × 35 columns\n\n\n\n\nIndexes can be given as 2 parameters (“cassini.iss”, “ring_summary”) or one (“cassini.iss.ring_summary”):\n\nindex = get_index(\"cassini.iss\", \"ring_summary\", refresh=False)\nindex.head()\n\n\n\n\n\n\n\n\n\nVOLUME_ID\nFILE_SPECIFICATION_NAME\nOPUS_ID\nMINIMUM_RIGHT_ASCENSION\nMAXIMUM_RIGHT_ASCENSION\nMINIMUM_DECLINATION\nMAXIMUM_DECLINATION\nMINIMUM_RING_RADIUS\nMAXIMUM_RING_RADIUS\nFINEST_RING_INTERCEPT_RESOLUTION\n...\nRING_CENTER_DISTANCE\nSUB_SOLAR_RING_LONGITUDE\nSUB_OBSERVER_RING_LONGITUDE\nRING_CENTER_PHASE_ANGLE\nRING_CENTER_INCIDENCE_ANGLE\nRING_CENTER_NORTH_BASED_INCIDENCE_ANGLE\nRING_CENTER_EMISSION_ANGLE\nRING_CENTER_NORTH_BASED_EMISSION_ANGLE\nSOLAR_RING_OPENING_ANGLE\nOBSERVER_RING_OPENING_ANGLE\n\n\n\n\n0\nCOISS_2001\ndata/1454725799_1455008789/N1454725799_1.LBL\nco-iss-n1454725799\n35.528398\n35.905555\n9.719637\n10.091212\n205899.335\n1098621.586\n419.0137\n...\n70874998.947\n284.523\n215.951\n64.07\n64.589\n115.411\n73.676\n106.324\n-25.411\n-16.324\n\n\n1\nCOISS_2001\ndata/1454725799_1455008789/N1454726579_1.LBL\nco-iss-n1454726579\n36.662898\n37.039038\n9.590114\n9.960833\n721136.155\n1745689.307\n421.97145\n...\n70870851.371\n284.524\n215.951\n64.07\n64.589\n115.411\n73.676\n106.324\n-25.411\n-16.324\n\n\n2\nCOISS_2001\ndata/1454725799_1455008789/N1454727359_1.LBL\nco-iss-n1454727359\n36.928066\n37.304334\n9.879593\n10.25011\n1042341.438\n2186830.92\n414.79041\n...\n70866703.094\n284.524\n215.951\n64.071\n64.589\n115.411\n73.676\n106.324\n-25.411\n-16.324\n\n\n3\nCOISS_2001\ndata/1454725799_1455008789/N1454728139_1.LBL\nco-iss-n1454728139\n28.10042\n28.479618\n6.224709\n6.601574\n-999.0\n-999.0\n-999.0\n...\n70862557.207\n284.524\n215.951\n64.071\n64.589\n115.411\n73.676\n106.324\n-25.411\n-16.324\n\n\n4\nCOISS_2001\ndata/1454725799_1455008789/N1454728919_1.LBL\nco-iss-n1454728919\n37.981418\n38.357791\n10.611947\n10.981697\n3865717.589\n3905151.343\n405.91234\n...\n70858406.794\n284.525\n215.951\n64.071\n64.589\n115.411\n73.676\n106.324\n-25.411\n-16.324\n\n\n\n\n5 rows × 59 columns\n\n\n\n\n\nindex = get_index(\"cassini.iss.ring_summary\", refresh=False)\nindex.head()\n\n\n\n\n\n\n\n\n\nVOLUME_ID\nFILE_SPECIFICATION_NAME\nOPUS_ID\nMINIMUM_RIGHT_ASCENSION\nMAXIMUM_RIGHT_ASCENSION\nMINIMUM_DECLINATION\nMAXIMUM_DECLINATION\nMINIMUM_RING_RADIUS\nMAXIMUM_RING_RADIUS\nFINEST_RING_INTERCEPT_RESOLUTION\n...\nRING_CENTER_DISTANCE\nSUB_SOLAR_RING_LONGITUDE\nSUB_OBSERVER_RING_LONGITUDE\nRING_CENTER_PHASE_ANGLE\nRING_CENTER_INCIDENCE_ANGLE\nRING_CENTER_NORTH_BASED_INCIDENCE_ANGLE\nRING_CENTER_EMISSION_ANGLE\nRING_CENTER_NORTH_BASED_EMISSION_ANGLE\nSOLAR_RING_OPENING_ANGLE\nOBSERVER_RING_OPENING_ANGLE\n\n\n\n\n0\nCOISS_2001\ndata/1454725799_1455008789/N1454725799_1.LBL\nco-iss-n1454725799\n35.528398\n35.905555\n9.719637\n10.091212\n205899.335\n1098621.586\n419.0137\n...\n70874998.947\n284.523\n215.951\n64.07\n64.589\n115.411\n73.676\n106.324\n-25.411\n-16.324\n\n\n1\nCOISS_2001\ndata/1454725799_1455008789/N1454726579_1.LBL\nco-iss-n1454726579\n36.662898\n37.039038\n9.590114\n9.960833\n721136.155\n1745689.307\n421.97145\n...\n70870851.371\n284.524\n215.951\n64.07\n64.589\n115.411\n73.676\n106.324\n-25.411\n-16.324\n\n\n2\nCOISS_2001\ndata/1454725799_1455008789/N1454727359_1.LBL\nco-iss-n1454727359\n36.928066\n37.304334\n9.879593\n10.25011\n1042341.438\n2186830.92\n414.79041\n...\n70866703.094\n284.524\n215.951\n64.071\n64.589\n115.411\n73.676\n106.324\n-25.411\n-16.324\n\n\n3\nCOISS_2001\ndata/1454725799_1455008789/N1454728139_1.LBL\nco-iss-n1454728139\n28.10042\n28.479618\n6.224709\n6.601574\n-999.0\n-999.0\n-999.0\n...\n70862557.207\n284.524\n215.951\n64.071\n64.589\n115.411\n73.676\n106.324\n-25.411\n-16.324\n\n\n4\nCOISS_2001\ndata/1454725799_1455008789/N1454728919_1.LBL\nco-iss-n1454728919\n37.981418\n38.357791\n10.611947\n10.981697\n3865717.589\n3905151.343\n405.91234\n...\n70858406.794\n284.525\n215.951\n64.071\n64.589\n115.411\n73.676\n106.324\n-25.411\n-16.324\n\n\n\n\n5 rows × 59 columns\n\n\n\n\n\nget_index(\"mro.ctx.edr\", refresh=False)\n\n\n\n\n\n\n\n\n\nVOLUME_ID\nFILE_SPECIFICATION_NAME\nORIGINAL_PRODUCT_ID\nPRODUCT_ID\nIMAGE_TIME\nINSTRUMENT_ID\nINSTRUMENT_MODE_ID\nLINE_SAMPLES\nLINES\nSPATIAL_SUMMING\n...\nSUB_SOLAR_LATITUDE\nSUB_SPACECRAFT_LONGITUDE\nSUB_SPACECRAFT_LATITUDE\nSOLAR_DISTANCE\nSOLAR_LONGITUDE\nLOCAL_TIME\nIMAGE_SKEW_ANGLE\nRATIONALE_DESC\nDATA_QUALITY_DESC\nORBIT_NUMBER\n\n\n\n\n0\nMROX_0001\nDATA/CRU_000001_9999_XN_99N999W.IMG\n4A_04_0001000400\nCRU_000001_9999_XN_99N999W\n2005-08-30 15:40:21.549\nCTX\nNIFL\n5056\n1024\n1\n...\n0.0\n0.0\n0.0\n0.0\n278.89\n10.16\n0.0\nInstrument checkout image of space\nOK\n-4242\n\n\n1\nMROX_0001\nDATA/CRU_000002_9999_XN_99N999W.IMG\n4A_04_0001000500\nCRU_000002_9999_XN_99N999W\n2005-09-08 15:59:45.313\nCTX\nNIFL\n5056\n15360\n1\n...\n0.0\n0.0\n0.0\n0.0\n284.48\n4.6\n0.0\nCalibration image of the Moon\nOK\n-4126\n\n\n2\nMROX_0001\nDATA/CRU_000003_9999_XN_99N999W.IMG\n4A_04_0001000600\nCRU_000003_9999_XN_99N999W\n2005-09-08 16:03:37.927\nCTX\nNIFL\n5056\n2048\n1\n...\n0.0\n0.0\n0.0\n0.0\n284.48\n4.66\n0.0\nCalibration image of Omega Centauri (globular ...\nOK\n-4126\n\n\n3\nMROX_0001\nDATA/CRU_000004_9999_XN_99N999W.IMG\n4A_04_0001000700\nCRU_000004_9999_XN_99N999W\n2005-09-08 16:08:23.841\nCTX\nNIFL\n5056\n2048\n1\n...\n0.0\n0.0\n0.0\n0.0\n284.48\n4.74\n0.0\nCalibration image of Omega Centauri (globular ...\nOK\n-4126\n\n\n4\nMROX_0001\nDATA/CRU_000005_9999_XN_99N999W.IMG\n4A_04_0001000800\nCRU_000005_9999_XN_99N999W\n2005-09-08 16:11:18.649\nCTX\nNIFL\n5056\n21504\n1\n...\n0.0\n0.0\n0.0\n0.0\n284.48\n4.79\n0.0\nCalibration image of the Moon\nOK\n-4126\n\n\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n\n\n138410\nMROX_4461\nDATA/U14_076622_1804_XN_00N105W.IMG\n4A_04_118404B100\nU14_076622_1804_XN_00N105W\n2022-11-30 17:29:26.742\nCTX\nNIFL\n5056\n33792\n1\n...\n-5.6\n105.05\n0.45\n228081883.9\n346.9\n14.39\n89.7\nTerrain northwest of Noctis Labyrinthus\nOK\n76622\n\n\n138411\nMROX_4461\nDATA/U14_076622_2009_XI_20N108W.IMG\n4A_04_118504B200\nU14_076622_2009_XI_20N108W\n2022-11-30 17:36:13.062\nCTX\nITL\n5056\n7168\n1\n...\n-5.6\n107.61\n20.98\n228082990.5\n346.9\n14.3\n90.1\nCandidate impact site formed at most between M...\nOK\n76622\n\n\n138412\nMROX_4461\nDATA/U14_076623_1977_XN_17N133W.IMG\n4A_04_118404B300\nU14_076623_1977_XN_17N133W\n2022-11-30 19:26:53.410\nCTX\nNIFL\n5056\n35840\n1\n...\n-5.59\n134.45\n17.69\n228097986.1\n346.94\n14.37\n90.1\nRide-along with HiRISE\nOK\n76623\n\n\n138413\nMROX_4461\nDATA/U14_076625_1182_XN_61S177W.IMG\n4A_04_118404B800\nU14_076625_1182_XN_61S177W\n2022-11-30 22:46:27.741\nCTX\nNIFL\n5056\n52224\n1\n...\n-5.56\n177.43\n-61.87\n228126022.3\n347.01\n14.71\n90.4\nSouthern highlands\nOK\n76625\n\n\n138414\nMROX_4461\nDATA/U14_076625_1714_XN_08S185W.IMG\n4A_04_118404B900\nU14_076625_1714_XN_08S185W\n2022-11-30 23:02:50.690\nCTX\nNIFL\n5056\n52224\n1\n...\n-5.55\n185.83\n-8.75\n228127015.7\n347.02\n14.45\n90.5\nRide-along with HiRISE\nOK\n76625\n\n\n\n\n138415 rows × 51 columns\n\n\n\n\n\nsource\n\n\nfind_instruments\n\n find_instruments (mission:str)\n\nFind existing instruments for a mission.\n\n\n\n\nType\nDetails\n\n\n\n\nmission\nstr\nMission string, e.g. “cassini”\n\n\nReturns\nlist\nList of configured instrument names\n\n\n\n\nfind_instruments(\"cassini\")\n\n['iss', 'uvis']\n\n\n\nfind_instruments(\"mro\")\n\n['hirise', 'ctx']\n\n\n\nfrom nbdev import nbdev_export\nnbdev_export()", + "crumbs": [ + "api", + "Apps" + ] + }, + { + "objectID": "api/cassini_iss.html", + "href": "api/cassini_iss.html", + "title": "Cassini ISS", + "section": "", + "text": "storage_root\n\nPath('/Users/maye/planetarypy_data/missions/cassini/iss')\n\n\n\nsource\n\nDataRetriever\n\n DataRetriever (pid)\n\nInitialize self. See help(type(self)) for accurate signature.\n\n\n\n\nDetails\n\n\n\n\npid\nPDS product_id, e.g. N1454725799\n\n\n\n\npid = \"N1454725799\"\n\n\ndm = DataRetriever(pid)\n\n\ndm.raw_fname\n\n'N1454725799_1.IMG'\n\n\n\ndm.raw_data_url\n\nURL('https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1.IMG')\n\n\n\ndm.raw_label_url\n\nURL('https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1.LBL')\n\n\n\ndm.raw_prefix_fmt_url\n\nURL('https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/label/prefix2.fmt')\n\n\n\ndm.raw_tlmtab_url\n\nURL('https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/label/tlmtab.fmt')\n\n\n\ndm.calib_data_url\n\nURL('https://opus.pds-rings.seti.org/holdings/calibrated/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_CALIB.IMG')\n\n\n\nsource\n\n\nISS\n\n ISS (pid)\n\nInitialize self. See help(type(self)) for accurate signature.\n\nid = \"N1874681996\"\nid = \"N1454725799\"\n# id = \"N1878581142\"\n\n\nlist(storage_root.rglob(f\"{id}*\"))\n\n[Path('/Users/maye/planetarypy_data/missions/cassini/iss/N1454725799'),\n Path('/Users/maye/planetarypy_data/missions/cassini/iss/N1454725799/N1454725799_1_CALIB.IMG')]\n\n\n\niss = ISS(pid)\n\nFound 1 obsids.\n\n\n\niss.local_folder\n\nPath('/Users/maye/planetarypy_data/missions/cassini/iss/N1454725799')\n\n\n\niss.raw_data_url\n\nURL('https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1.IMG')\n\n\n\niss.raw_tlmtab_url\n\nURL('https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/label/tlmtab.fmt')\n\n\n\niss.download_calib()\n\nFile exists. Use `overwrite` to force re-download.\n\n\n\nconfig.storage_root\n\nPath('/Users/maye/planetarypy_data')\n\n\n\niss.dict.keys()\n\ndict_keys(['coiss_raw', 'coiss_calib', 'coiss_thumb', 'coiss_medium', 'coiss_full', 'coiss_documentation', 'rms_index', 'inventory', 'planet_geometry', 'moon_geometry', 'ring_geometry', 'browse_thumb', 'browse_small', 'browse_medium', 'browse_full'])\n\n\n\niss.local_calib_path\n\nPath('/Users/maye/planetarypy_data/missions/cassini/iss/N1454725799/N1454725799_1_CALIB.IMG')\n\n\n\niss.calib_data_url\n\nURL('https://opus.pds-rings.seti.org/holdings/calibrated/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_CALIB.IMG')\n\n\n\ndm.calib_data_url\n\nURL('https://opus.pds-rings.seti.org/holdings/calibrated/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_CALIB.IMG')\n\n\n\niss.raw_data_url\n\nURL('https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1.IMG')\n\n\n\niss.volume\n\n'COISS_2001'\n\n\n\niss.local_folder\n\nPath('/Users/maye/planetarypy_data/missions/cassini/iss/N1454725799')\n\n\n\ndef get_raw_data_path(product_id):\n iss = ISS(product_id)\n return iss.local_data_path\n\n\nid\n\n'N1454725799'\n\n\n\nlist(storage_root.glob(f\"**/{id}\"))\n\n[Path('/Users/maye/planetarypy_data/missions/cassini/iss/N1454725799')]\n\n\n\nstorage_root\n\nPath('/Users/maye/planetarypy_data/missions/cassini/iss')\n\n\n\n!ls {storage_root}\n\nN1454725799/ N1874681996/ indexes/\n\n\n\nget_raw_data_path(id)\n\nFound 1 obsids.\n\n\nPath('/Users/maye/planetarypy_data/missions/cassini/iss/N1454725799/N1454725799_1.IMG')\n\n\n\niss.dict\n\n{'coiss_raw': ['https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1.IMG',\n 'https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1.LBL',\n 'https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/label/prefix2.fmt',\n 'https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/label/tlmtab.fmt'],\n 'coiss_calib': ['https://opus.pds-rings.seti.org/holdings/calibrated/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_CALIB.IMG',\n 'https://opus.pds-rings.seti.org/holdings/calibrated/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_CALIB.LBL'],\n 'coiss_thumb': ['https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/extras/thumbnail/1454725799_1455008789/N1454725799_1.IMG.jpeg_small'],\n 'coiss_medium': ['https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/extras/browse/1454725799_1455008789/N1454725799_1.IMG.jpeg'],\n 'coiss_full': ['https://opus.pds-rings.seti.org/holdings/volumes/COISS_2xxx/COISS_2001/extras/full/1454725799_1455008789/N1454725799_1.IMG.png'],\n 'coiss_documentation': ['https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/VICAR-File-Format.pdf',\n 'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/ISS-Users-Guide.pdf',\n 'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/ISS-Users-Guide.docx',\n 'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/Data-Product-SIS.txt',\n 'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/Data-Product-SIS.pdf',\n 'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/Cassini-ISS-Final-Report.pdf',\n 'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/Calibration-Theoretical-Basis.pdf',\n 'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/Calibration-Plan.pdf',\n 'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/CISSCAL-Users-Guide.pdf',\n 'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/Archive-SIS.txt',\n 'https://opus.pds-rings.seti.org/holdings/documents/COISS_0xxx/Archive-SIS.pdf'],\n 'rms_index': ['https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_index.tab',\n 'https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_index.lbl'],\n 'inventory': ['https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_inventory.csv',\n 'https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_inventory.lbl'],\n 'planet_geometry': ['https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_saturn_summary.tab',\n 'https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_saturn_summary.lbl'],\n 'moon_geometry': ['https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_moon_summary.tab',\n 'https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_moon_summary.lbl'],\n 'ring_geometry': ['https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_ring_summary.tab',\n 'https://opus.pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2001/COISS_2001_ring_summary.lbl'],\n 'browse_thumb': ['https://opus.pds-rings.seti.org/holdings/previews/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_thumb.jpg'],\n 'browse_small': ['https://opus.pds-rings.seti.org/holdings/previews/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_small.jpg'],\n 'browse_medium': ['https://opus.pds-rings.seti.org/holdings/previews/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_med.jpg'],\n 'browse_full': ['https://opus.pds-rings.seti.org/holdings/previews/COISS_2xxx/COISS_2001/data/1454725799_1455008789/N1454725799_1_full.png']}", + "crumbs": [ + "api", + "Cassini ISS" + ] + }, + { + "objectID": "api/utils.html", + "href": "api/utils.html", + "title": "Utils", + "section": "", + "text": "First, we define the different format strings these utils convert from and to.\nAn identifier with xxx_dt_format_xxx in its name signifies a full datetime format as compared to dates only.\n\n\nWhat we call NASA data, is the often used YYYY-JJJ based format in the Planetary Data System identifying dates via the running number of the day in the year, e.g. “2010-240”.\n\nsource\n\n\n\n\n nasa_time_to_datetime (inputstr)\n\nUser function to convert all kinds of NASA PDS datestrings with day_of_year into datetimes.\n\n\n\n\n\n\n\n\n\nType\nDetails\n\n\n\n\ninputstr\n\ninputstr of format YYYY-jjj, YYYY-jjjTHH:MM:SS or YYYY-jjjTHH:MM:SS.ffffff\n\n\nReturns\ndatetime\n\n\n\n\nExample dates and times to test:\n\nnasa_date = \"2010-110\"\niso_date = \"2010-4-20\"\nnasa_datetime = \"2010-110T10:12:14\"\nnasa_datetime_with_ms = nasa_datetime + \".123000\"\niso_datetime = \"2010-04-20T10:12:14\"\niso_datetime_with_ms = iso_datetime + \".123000\"\nnasa_times = [nasa_date, nasa_datetime, nasa_datetime_with_ms]\niso_times = [iso_date, iso_datetime, iso_datetime_with_ms]\n\n\nassert nasa_time_to_datetime(nasa_date) == dt.datetime(2010, 4, 20, 0, 0)\n\n\nassert nasa_time_to_datetime(nasa_datetime) == dt.datetime(2010, 4, 20, 10, 12, 14)\n\n\nassert nasa_time_to_datetime(nasa_datetime_with_ms) == dt.datetime(\n 2010, 4, 20, 10, 12, 14, 123000\n)\n\n\nsource\n\n\n\n\n nasa_time_to_iso (inputstr:str, with_hours:bool=False)\n\nConvert the day-number based NASA datetime format to ISO\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\ninputstr\nstr\n\n\n\n\nwith_hours\nbool\nFalse\nSwitch if return is wanted with hours (i.e. isoformat)\n\n\nReturns\nstr\n\nDatestring in ISO-format.\n\n\n\nConversions to ISO format, but not providing hours if they are not in input:\n\nfor t in nasa_times:\n print(\"Input:\", t)\n print(nasa_time_to_iso(t))\n\nInput: 2010-110\n2010-04-20\nInput: 2010-110T10:12:14\n2010-04-20T10:12:14\nInput: 2010-110T10:12:14.123000\n2010-04-20T10:12:14.123000\n\n\nIf hours are wanted in the isostring, use with_hours=True:\n\nfor t in nasa_times:\n print(\"Input:\", t)\n print(nasa_time_to_iso(t, with_hours=True))\n\nInput: 2010-110\n2010-04-20T00:00:00\nInput: 2010-110T10:12:14\n2010-04-20T10:12:14\nInput: 2010-110T10:12:14.123000\n2010-04-20T10:12:14.123000\n\n\n\nassert nasa_time_to_iso(nasa_date, with_hours=True) == \"2010-04-20T00:00:00\"\nassert nasa_time_to_iso(nasa_date) == \"2010-04-20\"\n\n\n\n\nAgain, with NASA-format, we mean the ofen used (in PDS and mission files) YYYY-JJJ format, e.g. “2010-240”.\n\nsource\n\n\n\n\n iso_to_nasa_time (inputstr:str)\n\nConvert iso date to day-number based NASA date.\n\n\n\n\nType\nDetails\n\n\n\n\ninputstr\nstr\nDate string of the form Y-m-d\n\n\nReturns\nstr\nDatestring in NASA standard yyyy-jjj\n\n\n\n\nsource\n\n\n\n\n iso_to_nasa_datetime (dtimestr:str)\n\nConvert iso datetime to day-number based NASA datetime.\n\n\n\n\nType\nDetails\n\n\n\n\ndtimestr\nstr\nDatetime string of the form yyyy-mm-ddTHH-MM-SS\n\n\n\n\nfor t in iso_times:\n print(\"Input:\", t)\n print(iso_to_nasa_time(t))\n\nInput: 2010-4-20\n2010-110\nInput: 2010-04-20T10:12:14\n2010-110T10:12:14\nInput: 2010-04-20T10:12:14.123000\n2010-110T10:12:14.123000\n\n\n\nassert iso_to_nasa_time(iso_date) == nasa_date\n\n\nassert nasa_time_to_iso(nasa_datetime) == iso_datetime\nassert nasa_time_to_iso(nasa_datetime_with_ms) == iso_datetime_with_ms\n\n\nassert iso_to_nasa_time(iso_datetime) == nasa_datetime\nassert iso_to_nasa_time(iso_datetime_with_ms) == nasa_datetime_with_ms\n\n\nsource\n\n\n\n\n replace_all_nasa_times (df:pandas.core.frame.DataFrame)\n\nFind all NASA times in dataframe and replace with ISO.\nChanges will be implemented on incoming dataframe!\nThis will be done for all columns with the word TIME in the column name.\n\n\n\n\nType\nDetails\n\n\n\n\ndf\nDataFrame\nDataFrame with NASA time columns", + "crumbs": [ + "api", + "Utils" + ] + }, + { + "objectID": "api/utils.html#time-format-strings", + "href": "api/utils.html#time-format-strings", + "title": "Utils", + "section": "", + "text": "First, we define the different format strings these utils convert from and to.\nAn identifier with xxx_dt_format_xxx in its name signifies a full datetime format as compared to dates only.\n\n\nWhat we call NASA data, is the often used YYYY-JJJ based format in the Planetary Data System identifying dates via the running number of the day in the year, e.g. “2010-240”.\n\nsource\n\n\n\n\n nasa_time_to_datetime (inputstr)\n\nUser function to convert all kinds of NASA PDS datestrings with day_of_year into datetimes.\n\n\n\n\n\n\n\n\n\nType\nDetails\n\n\n\n\ninputstr\n\ninputstr of format YYYY-jjj, YYYY-jjjTHH:MM:SS or YYYY-jjjTHH:MM:SS.ffffff\n\n\nReturns\ndatetime\n\n\n\n\nExample dates and times to test:\n\nnasa_date = \"2010-110\"\niso_date = \"2010-4-20\"\nnasa_datetime = \"2010-110T10:12:14\"\nnasa_datetime_with_ms = nasa_datetime + \".123000\"\niso_datetime = \"2010-04-20T10:12:14\"\niso_datetime_with_ms = iso_datetime + \".123000\"\nnasa_times = [nasa_date, nasa_datetime, nasa_datetime_with_ms]\niso_times = [iso_date, iso_datetime, iso_datetime_with_ms]\n\n\nassert nasa_time_to_datetime(nasa_date) == dt.datetime(2010, 4, 20, 0, 0)\n\n\nassert nasa_time_to_datetime(nasa_datetime) == dt.datetime(2010, 4, 20, 10, 12, 14)\n\n\nassert nasa_time_to_datetime(nasa_datetime_with_ms) == dt.datetime(\n 2010, 4, 20, 10, 12, 14, 123000\n)\n\n\nsource\n\n\n\n\n nasa_time_to_iso (inputstr:str, with_hours:bool=False)\n\nConvert the day-number based NASA datetime format to ISO\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\ninputstr\nstr\n\n\n\n\nwith_hours\nbool\nFalse\nSwitch if return is wanted with hours (i.e. isoformat)\n\n\nReturns\nstr\n\nDatestring in ISO-format.\n\n\n\nConversions to ISO format, but not providing hours if they are not in input:\n\nfor t in nasa_times:\n print(\"Input:\", t)\n print(nasa_time_to_iso(t))\n\nInput: 2010-110\n2010-04-20\nInput: 2010-110T10:12:14\n2010-04-20T10:12:14\nInput: 2010-110T10:12:14.123000\n2010-04-20T10:12:14.123000\n\n\nIf hours are wanted in the isostring, use with_hours=True:\n\nfor t in nasa_times:\n print(\"Input:\", t)\n print(nasa_time_to_iso(t, with_hours=True))\n\nInput: 2010-110\n2010-04-20T00:00:00\nInput: 2010-110T10:12:14\n2010-04-20T10:12:14\nInput: 2010-110T10:12:14.123000\n2010-04-20T10:12:14.123000\n\n\n\nassert nasa_time_to_iso(nasa_date, with_hours=True) == \"2010-04-20T00:00:00\"\nassert nasa_time_to_iso(nasa_date) == \"2010-04-20\"\n\n\n\n\nAgain, with NASA-format, we mean the ofen used (in PDS and mission files) YYYY-JJJ format, e.g. “2010-240”.\n\nsource\n\n\n\n\n iso_to_nasa_time (inputstr:str)\n\nConvert iso date to day-number based NASA date.\n\n\n\n\nType\nDetails\n\n\n\n\ninputstr\nstr\nDate string of the form Y-m-d\n\n\nReturns\nstr\nDatestring in NASA standard yyyy-jjj\n\n\n\n\nsource\n\n\n\n\n iso_to_nasa_datetime (dtimestr:str)\n\nConvert iso datetime to day-number based NASA datetime.\n\n\n\n\nType\nDetails\n\n\n\n\ndtimestr\nstr\nDatetime string of the form yyyy-mm-ddTHH-MM-SS\n\n\n\n\nfor t in iso_times:\n print(\"Input:\", t)\n print(iso_to_nasa_time(t))\n\nInput: 2010-4-20\n2010-110\nInput: 2010-04-20T10:12:14\n2010-110T10:12:14\nInput: 2010-04-20T10:12:14.123000\n2010-110T10:12:14.123000\n\n\n\nassert iso_to_nasa_time(iso_date) == nasa_date\n\n\nassert nasa_time_to_iso(nasa_datetime) == iso_datetime\nassert nasa_time_to_iso(nasa_datetime_with_ms) == iso_datetime_with_ms\n\n\nassert iso_to_nasa_time(iso_datetime) == nasa_datetime\nassert iso_to_nasa_time(iso_datetime_with_ms) == nasa_datetime_with_ms\n\n\nsource\n\n\n\n\n replace_all_nasa_times (df:pandas.core.frame.DataFrame)\n\nFind all NASA times in dataframe and replace with ISO.\nChanges will be implemented on incoming dataframe!\nThis will be done for all columns with the word TIME in the column name.\n\n\n\n\nType\nDetails\n\n\n\n\ndf\nDataFrame\nDataFrame with NASA time columns", + "crumbs": [ + "api", + "Utils" + ] + }, + { + "objectID": "api/utils.html#network-utils", + "href": "api/utils.html#network-utils", + "title": "Utils", + "section": "Network utils", + "text": "Network utils\n\nsource\n\nhave_internet\n\n have_internet ()\n\nFastest way to check for active internet connection.\nFrom https://stackoverflow.com/a/29854274/680232\n\nsource\n\n\nurl_retrieve\n\n url_retrieve (url:str, outfile:str, chunk_size:int=4096, user:str=None,\n passwd:str=None)\n\nImproved urlretrieve with progressbar, timeout and chunker.\nThis downloader has built-in progress bar using tqdm and using the requests package it improves standard urllib behavior by adding time-out capability.\nI tested different chunk_sizes and most of the time 128 was actually fastest, YMMV.\nInspired by https://stackoverflow.com/a/61575758/680232\n\n\n\n\n\n\n\n\n\n\nType\nDefault\nDetails\n\n\n\n\nurl\nstr\n\nThe URL to download\n\n\noutfile\nstr\n\nThe path where to store the downloaded file.\n\n\nchunk_size\nint\n4096\ndef chunk size for the request.iter_content call\n\n\nuser\nstr\nNone\nif provided, create HTTPBasicAuth object\n\n\npasswd\nstr\nNone\nif provided, create HTTPBasicAuth object\n\n\n\n\nsource\n\n\ncheck_url_exists\n\n check_url_exists (url)\n\n\nsource\n\n\nget_remote_timestamp\n\n get_remote_timestamp (url:str)\n\nGet the timestamp of a remote file.\nUseful for checking if there’s an updated file available.\n\n\n\n\nType\nDetails\n\n\n\n\nurl\nstr\nURL to check timestamp for\n\n\nReturns\ndatetime\n\n\n\n\n\nsource\n\n\nparse_http_date\n\n parse_http_date (text:str)\n\nParse date string retrieved via urllib.request.\n\n\n\n\n\n\n\n\n\nType\nDetails\n\n\n\n\ntext\nstr\ndatestring from urllib.request\n\n\nReturns\ndatetime\ndt.datetime object from given datetime string\n\n\n\n\nhave_internet()\n\nTrue", + "crumbs": [ + "api", + "Utils" + ] + }, + { + "objectID": "api/utils.html#image-processing-helpers", + "href": "api/utils.html#image-processing-helpers", + "title": "Utils", + "section": "Image processing helpers", + "text": "Image processing helpers\n\nsource\n\nfile_variations\n\n file_variations (filename:Union[str,pathlib.Path], extensions:list)\n\nCreate a variation of file names.\nGenerate a list of variations on a filename by replacing the extension with the provided list.\nAdapted from T. Olsens `file_variations of the pysis module for using pathlib.\n\n\n\n\nType\nDetails\n\n\n\n\nfilename\nUnion\nThe original filename to use as a base.\n\n\nextensions\nlist\n\n\n\nReturns\nlist\nlist of Paths\n\n\n\n\nsource\n\n\nget_gdal_center_coords\n\n get_gdal_center_coords (imgpath:Union[str,pathlib.Path])\n\nGet center rows/cols pixel coordinate for GDAL-readable dataset.\nCheck CLI gdalinfo --formats to see all formats that GDAL can open.\n\n\n\n\nType\nDetails\n\n\n\n\nimgpath\nUnion\nPath to raster image that is readable by GDLA\n\n\nReturns\nTuple\ncenter row/col coordinates.\n\n\n\n\nsource\n\n\nheight_from_shadow\n\n height_from_shadow (shadow_in_pixels:float, sun_elev:float)\n\nCalculate height of an object from its shadow length.\nNote, that your image might have been binned. You need to correct shadow_in_pixels for that.\n\n\n\n\nType\nDetails\n\n\n\n\nshadow_in_pixels\nfloat\nMeasured length of shadow in pixels\n\n\nsun_elev\nfloat\nAnge of sun over horizon in degrees\n\n\nReturns\nfloat\nHeight [meter]\n\n\n\n\nfname = \"abc.txt\"\n\n\nextensions = \".cub .cal.cub .map.cal.cub\".split()\n\n\nfile_variations(fname, extensions)\n\n[Path('abc.cub'), Path('abc.cal.cub'), Path('abc.map.cal.cub')]\n\n\n\nassert len(extensions) == len(file_variations(fname, extensions))", + "crumbs": [ + "api", + "Utils" + ] + }, + { + "objectID": "api/utils.html#isis-helpers", + "href": "api/utils.html#isis-helpers", + "title": "Utils", + "section": "ISIS helpers", + "text": "ISIS helpers\n\nsource\n\ncatch_isis_error\n\n catch_isis_error (func)\n\ncan be used as decorator for any ISIS function", + "crumbs": [ + "api", + "Utils" + ] + }, + { + "objectID": "api/utils.html#notebook-tools", + "href": "api/utils.html#notebook-tools", + "title": "Utils", + "section": "Notebook tools", + "text": "Notebook tools\n\nfrom nbdev import nbdev_export\n\nnbdev_export()", + "crumbs": [ + "api", + "Utils" + ] + }, + { + "objectID": "api/pds.ctx_index.html", + "href": "api/pds.ctx_index.html", + "title": "CTX Index", + "section": "", + "text": "source\n\nCTXIndex\n\n CTXIndex ()\n\nInitialize self. See help(type(self)) for accurate signature.\n\nctx = CTXIndex()\n\n\nctx.volumes_table\n\n\n\n\n\n\n\n\n\nName\nLast modified\n\n\n\n\n2\nmrox_0001/\n05-Jun-2007 10:15\n\n\n3\nmrox_0001_md5.txt\n10-Dec-2019 04:32\n\n\n4\nmrox_0002/\n05-Jun-2007 10:15\n\n\n5\nmrox_0002_md5.txt\n09-Dec-2019 19:14\n\n\n6\nmrox_0003/\n05-Jun-2007 10:15\n\n\n...\n...\n...\n\n\n9515\nmrox_4757_md5.txt\n15-Nov-2023 23:23\n\n\n9516\nmrox_4758/\n15-Nov-2023 23:08\n\n\n9517\nmrox_4758_md5.txt\n15-Nov-2023 23:23\n\n\n9518\nmrox_4759/\n15-Nov-2023 23:10\n\n\n9519\nmrox_4759_md5.txt\n15-Nov-2023 23:23\n\n\n\n\n9518 rows × 2 columns\n\n\n\n\n\nctx.latest_release_folder\n\n'mrox_4759/'\n\n\n\nctx.latest_release_number\n\n'4759'\n\n\n\nctx.latest_index_label_url\n\nURL('https://planetarydata.jpl.nasa.gov/img/data/mro/mars_reconnaissance_orbiter/ctx/mrox_4759/index/cumindex.lbl')" + }, + { + "objectID": "api/exceptions.html", + "href": "api/exceptions.html", + "title": "Package exceptions", + "section": "", + "text": "source\n\nMissingParameterError\n\n MissingParameterError (txt)\n\nBase class for exceptions in this module.\n\nsource\n\n\nSpiceError\n\n SpiceError (function)\n\nBase class for exceptions in this module.\n\nsource\n\n\nObserverNotSetError\nBase class for exceptions in this module.\n\nsource\n\n\nSPointNotSetError\nBase class for exceptions in this module.\n\nsource\n\n\nSpicerError\nBase class for exceptions in this module.\n\nsource\n\n\nGeoTransformNotSetError\n\n GeoTransformNotSetError (where, what)\n\nException raised for errors in the input of transformations.\nAttributes: where – where is something missing what – what is missing\n\nsource\n\n\nProjectionNotSetError\n\n ProjectionNotSetError (where, what)\n\nException raised for errors in the input of transformations.\nAttributes: where – where is something missing what – what is missing\n\nsource\n\n\nSomethingNotSetError\n\n SomethingNotSetError (where, what)\n\nException raised for errors in the input of transformations.\nAttributes: where – where is something missing what – what is missing\n\nsource\n\n\nError\nBase class for exceptions in this module.", + "crumbs": [ + "api", + "Package exceptions" + ] + }, + { + "objectID": "index.html", + "href": "index.html", + "title": "PlanetaryPy", + "section": "", + "text": "Beta release: This will become (part of) the core package of the PlanetaryPy organisation.\n\nPotential logo:\n\n\npip install planetarypy\nThis will pull in these other dependencies and their dependencies:\ntomlkit pandas pvl numpy python-dateutil tqdm lxml yarl hirise-tools kalasiris\n\n\n\n\nInside these docs the package will be called PLPY for brevity.\nA standard Python import could be: plp or plpy\n\nbecause the last p in plp can be pronounced out, we consider these equivalent for human conversation and pronounce these “plippy”.\n\n\n\n\n\nFirst and foremost this package should provide support in working with planetary science data.\nWith working we mean:\n\nlocating\nretrieving\nreading\nfurther processing\n\nof data.\n\n\nThis library manages, via its PDS tools, multiple PDS3 index files per instrument that can be used for identifying data of interest. These index files are automatically downloaded and converted to the very performant (and cloud-ready) parquet file format. > Parquet is able to store advanced datatypes like nan-capable integer and full datetime objects, as opposed to HDF5.\n\n\n\nThe interface to getting data is via a path-retrieving function based on a PDS product-id. If that product-id is available locally, the path will be returned. If it is not, it will previously be downloaded, stored in a systematic fashion organized by mission and instrument, and then the local path will be returned.\n\n\n\nFor now, the library only returns the path to the object and the user needs to sort out the reading process. A recently funded NASA project Planetary Data Reader will be integrated here, so that basic reading into memory can be provided.\nAs such, we anticipate two classes of reading support: 1. basic reading into numpy and/or xarray 1. added reader functionality like basic plots and basic geospatial processing, as supported by interested parties\nThere will exist larger other packages that focus on working with a given instrument’s data, in which case that package could become an affiliated package with the planetarypy GitHub organization, if so desired.\n\n\n\nIn the future, additional frequently used procedures will be added to this library, e.g. * frequently used GDAL/rasterio procedures * frequently used SPICE operations * like surface illumination on a given body\n\n\n\n\nLook at the Apps docs to see what pds.apps exist for easily getting PDS indexes. The find_index app is specifically useful when you don’t know what index files exist.\nSo far, the following indexes are supported (but not necessarily all tested within PLPY):\n\nCassini\n\nISS (all)\nUVIS (all)\n\nMRO\n\nCTX EDR\nHiRISE\n\nEDR, RDR, DTM\n\nEDR index has a bug (as delivered by the team, reported), where I need to activate an existing fix for it.\n\n\n\nLRO\n\nDiviner (DLRE)\n\nEDR, RDR\n\nLOLA\n\nEDR, RDR\n\n\n\n\n\nMore indexes of other instruments can be easily added by following the existing structure of what has been copied into your config at ~/.planetarypy_config.toml.\nPlease consider submitting a pull request for adding further PDS index files into the config file at its source: https://github.com/michaelaye/nbplanetary/blob/master/planetarypy/data/planetarypy_config.toml\n\n\n\n\nFind something in Utils for working with NASA timestamps and a well working URL download function url_retrieve, among other stuff.\n\n\n\nSo far, planetarypy supports CTX EDR and HiRISE RGB.NOMAP data. Look at the CTX and HiRISE pages for descriptions of classes for working with these data.\n\n\n\nPlease submit bug reports at https://github.com/michaelaye/nbplanetary/issues\n\n\n\n\n\nSee PDS apps for more details.\n\nfrom planetarypy.pds.apps import get_index\n\n\nctrindex = get_index(\"mro.ctx\", \"edr\", refresh=False)\nctrindex.sample(5, random_state=42) # setting random_state to always get same files for docs\n\n\n\n\n\n\n\n\n\nVOLUME_ID\nFILE_SPECIFICATION_NAME\nORIGINAL_PRODUCT_ID\nPRODUCT_ID\nIMAGE_TIME\nINSTRUMENT_ID\nINSTRUMENT_MODE_ID\nLINE_SAMPLES\nLINES\nSPATIAL_SUMMING\n...\nSUB_SOLAR_LATITUDE\nSUB_SPACECRAFT_LONGITUDE\nSUB_SPACECRAFT_LATITUDE\nSOLAR_DISTANCE\nSOLAR_LONGITUDE\nLOCAL_TIME\nIMAGE_SKEW_ANGLE\nRATIONALE_DESC\nDATA_QUALITY_DESC\nORBIT_NUMBER\n\n\n\n\n86101\nMROX_2757\nDATA/J07_047671_1256_XN_54S338W.IMG\n4A_04_10F0036A00\nJ07_047671_1256_XN_54S338W\n2016-09-27 00:24:54.682\nCTX\nNIFL\n2528\n8192\n1\n...\n-19.41\n338.09\n-54.43\n207762612.4\n230.58\n15.48\n90.1\nCrater in Noachis Terra\nOK\n47671\n\n\n54420\nMROX_1819\nDATA/D10_031170_1808_XN_00N221W.IMG\n4A_04_109C017D00\nD10_031170_1808_XN_00N221W\n2013-03-21 06:58:09.892\nCTX\nNIFL\n5056\n7168\n1\n...\n-24.39\n221.52\n0.88\n209925149.5\n286.15\n14.49\n90.1\nRide-along with HiRISE\nOK\n31170\n\n\n71053\nMROX_2331\nDATA/F10_039530_1470_XI_33S203W.IMG\n4A_04_10C9000F00\nF10_039530_1470_XI_33S203W\n2015-01-01 16:20:01.840\nCTX\nITL\n5056\n52224\n1\n...\n-25.3\n203.96\n-33.12\n207070298.2\n263.93\n15.2\n90.4\nTerrain in Terra Cimmeria\nOK\n39530\n\n\n51385\nMROX_1742\nDATA/D04_028919_2026_XN_22N327W.IMG\n4A_04_109002A800\nD04_028919_2026_XN_22N327W\n2012-09-26 21:17:00.483\nCTX\nNIFL\n5056\n6144\n1\n...\n0.67\n327.06\n22.78\n219814412.3\n178.44\n15.53\n90.1\nRide-along with HiRISE\nOK\n28919\n\n\n51923\nMROX_1757\nDATA/D05_029283_1524_XN_27S180W.IMG\n4A_04_1092020B00\nD05_029283_1524_XN_27S180W\n2012-10-25 05:44:21.786\nCTX\nNIFL\n5056\n9216\n1\n...\n-6.28\n178.36\n-27.56\n214830233.7\n194.72\n15.57\n90.1\nRide-along with HiRISE\nOK\n29283\n\n\n\n\n5 rows × 51 columns\n\n\n\n\n\nhirise_rdr = get_index(\"mro.hirise\", \"rdr\")\nhirise_rdr.sample(5, random_state=42)\n\n\n\n\n\n\n\n\n\nVOLUME_ID\nFILE_NAME_SPECIFICATION\nINSTRUMENT_HOST_ID\nINSTRUMENT_ID\nOBSERVATION_ID\nPRODUCT_ID\nPRODUCT_VERSION_ID\nTARGET_NAME\nORBIT_NUMBER\nMISSION_PHASE_NAME\n...\nLINE_PROJECTION_OFFSET\nSAMPLE_PROJECTION_OFFSET\nCORNER1_LATITUDE\nCORNER1_LONGITUDE\nCORNER2_LATITUDE\nCORNER2_LONGITUDE\nCORNER3_LATITUDE\nCORNER3_LONGITUDE\nCORNER4_LATITUDE\nCORNER4_LONGITUDE\n\n\n\n\n144822\nMROHR_0001\nRDR/ESP/ORB_074100_074199/ESP_074107_1410/ESP_...\nMRO\nHIRISE\nESP_074107_1410\nESP_074107_1410_COLOR\n1\nMARS\n74107\nExtended Science Phase\n...\n-4568562.5\n2009279.5\n-38.7446\n159.311\n-38.7465\n159.287\n-38.614\n159.269\n-38.6121\n159.293\n\n\n22518\nMROHR_0001\nRDR/ESP/ORB_014000_014099/ESP_014080_1040/ESP_...\nMRO\nHIRISE\nESP_014080_1040\nESP_014080_1040_RED\n1\nMARS\n14080\nExtended Science Phase\n...\n-3193960.0\n-845180.0\n-76.0185\n165.215\n-76.0315\n164.858\n-75.6958\n164.658\n-75.6831\n165.005\n\n\n86634\nMROHR_0001\nRDR/ESP/ORB_046300_046399/ESP_046395_1730/ESP_...\nMRO\nHIRISE\nESP_046395_1730\nESP_046395_1730_COLOR\n1\nMARS\n46395\nExtended Science Phase\n...\n-1584330.0\n-26573400.0\n-6.9957\n292.569\n-6.9979\n292.551\n-6.6838\n292.51\n-6.6815\n292.529\n\n\n138163\nMROHR_0001\nRDR/ESP/ORB_069100_069199/ESP_069178_2345/ESP_...\nMRO\nHIRISE\nESP_069178_2345\nESP_069178_2345_RED\n1\nMARS\n69178\nExtended Science Phase\n...\n12762196.0\n15708938.0\n53.8598\n76.7591\n53.8474\n76.602\n54.0013\n76.5672\n54.0137\n76.7249\n\n\n125490\nMROHR_0001\nRDR/ESP/ORB_063500_063599/ESP_063504_1995/ESP_...\nMRO\nHIRISE\nESP_063504_1995\nESP_063504_1995_COLOR\n1\nMARS\n63504\nExtended Science Phase\n...\n4638178.5\n12794202.0\n19.4523\n124.149\n19.45\n124.128\n19.5686\n124.113\n19.5709\n124.133\n\n\n\n\n5 rows × 54 columns\n\n\n\n\n\n\n\n\n\n\n\nfrom planetarypy.ctx import CTX\n\n\npid = ctrindex.sample(random_state=42).squeeze().PRODUCT_ID\npid\n\n'J07_047671_1256_XN_54S338W'\n\n\n\nctx = CTX(pid)\nctx\n\nPRODUCT_ID: J07_047671_1256_XN_54S338W\nURL: https://pds-imaging.jpl.nasa.gov/data/mro/mars_reconnaissance_orbiter/ctx/mrox_2757/data/J07_047671_1256_XN_54S338W.IMG\nsource_path: /remote/trove/geo/planet/Mars/CTX/pds/mrox_2757/J07_047671_1256_XN_54S338W.IMG\nShape: (8192, 2528)\n\n\n\nctx.source_path\n\nPath('/remote/trove/geo/planet/Mars/CTX/pds/mrox_2757/J07_047671_1256_XN_54S338W.IMG')\n\n\n\nctx.download()\n\nFile exists. Use `overwrite=True` to download fresh.\n\n\n\n\n\n\nThe creation of this library was in part supported by:\n\nNASA Cassini UVIS mission\nNASA SSW grant NNX15AH36G\nNASA PDART grant 80NSSC20K0875\nNASA SSW grant 80NSSC20K0748\nGerman Space Agency (DLR Bonn), grant 50 OO 2204, on behalf of the German Federal Ministry for Economic Affairs and Climate Action.\nThis research has made use of the USGS Integrated Software for Imagers and Spectrometers (ISIS)(Laura et al. 2022).", + "crumbs": [ + "PlanetaryPy" + ] + }, + { + "objectID": "index.html#install", + "href": "index.html#install", + "title": "PlanetaryPy", + "section": "", + "text": "pip install planetarypy\nThis will pull in these other dependencies and their dependencies:\ntomlkit pandas pvl numpy python-dateutil tqdm lxml yarl hirise-tools kalasiris", + "crumbs": [ + "PlanetaryPy" + ] + }, + { + "objectID": "index.html#suggested-standard-abbreviations", + "href": "index.html#suggested-standard-abbreviations", + "title": "PlanetaryPy", + "section": "", + "text": "Inside these docs the package will be called PLPY for brevity.\nA standard Python import could be: plp or plpy\n\nbecause the last p in plp can be pronounced out, we consider these equivalent for human conversation and pronounce these “plippy”.", + "crumbs": [ + "PlanetaryPy" + ] + }, + { + "objectID": "index.html#general-scope", + "href": "index.html#general-scope", + "title": "PlanetaryPy", + "section": "", + "text": "First and foremost this package should provide support in working with planetary science data.\nWith working we mean:\n\nlocating\nretrieving\nreading\nfurther processing\n\nof data.\n\n\nThis library manages, via its PDS tools, multiple PDS3 index files per instrument that can be used for identifying data of interest. These index files are automatically downloaded and converted to the very performant (and cloud-ready) parquet file format. > Parquet is able to store advanced datatypes like nan-capable integer and full datetime objects, as opposed to HDF5.\n\n\n\nThe interface to getting data is via a path-retrieving function based on a PDS product-id. If that product-id is available locally, the path will be returned. If it is not, it will previously be downloaded, stored in a systematic fashion organized by mission and instrument, and then the local path will be returned.\n\n\n\nFor now, the library only returns the path to the object and the user needs to sort out the reading process. A recently funded NASA project Planetary Data Reader will be integrated here, so that basic reading into memory can be provided.\nAs such, we anticipate two classes of reading support: 1. basic reading into numpy and/or xarray 1. added reader functionality like basic plots and basic geospatial processing, as supported by interested parties\nThere will exist larger other packages that focus on working with a given instrument’s data, in which case that package could become an affiliated package with the planetarypy GitHub organization, if so desired.\n\n\n\nIn the future, additional frequently used procedures will be added to this library, e.g. * frequently used GDAL/rasterio procedures * frequently used SPICE operations * like surface illumination on a given body", + "crumbs": [ + "PlanetaryPy" + ] + }, + { + "objectID": "index.html#pds-tools", + "href": "index.html#pds-tools", + "title": "PlanetaryPy", + "section": "", + "text": "Look at the Apps docs to see what pds.apps exist for easily getting PDS indexes. The find_index app is specifically useful when you don’t know what index files exist.\nSo far, the following indexes are supported (but not necessarily all tested within PLPY):\n\nCassini\n\nISS (all)\nUVIS (all)\n\nMRO\n\nCTX EDR\nHiRISE\n\nEDR, RDR, DTM\n\nEDR index has a bug (as delivered by the team, reported), where I need to activate an existing fix for it.\n\n\n\nLRO\n\nDiviner (DLRE)\n\nEDR, RDR\n\nLOLA\n\nEDR, RDR\n\n\n\n\n\nMore indexes of other instruments can be easily added by following the existing structure of what has been copied into your config at ~/.planetarypy_config.toml.\nPlease consider submitting a pull request for adding further PDS index files into the config file at its source: https://github.com/michaelaye/nbplanetary/blob/master/planetarypy/data/planetarypy_config.toml", + "crumbs": [ + "PlanetaryPy" + ] + }, + { + "objectID": "index.html#utils", + "href": "index.html#utils", + "title": "PlanetaryPy", + "section": "", + "text": "Find something in Utils for working with NASA timestamps and a well working URL download function url_retrieve, among other stuff.", + "crumbs": [ + "PlanetaryPy" + ] + }, + { + "objectID": "index.html#experimentinstrument-specific", + "href": "index.html#experimentinstrument-specific", + "title": "PlanetaryPy", + "section": "", + "text": "So far, planetarypy supports CTX EDR and HiRISE RGB.NOMAP data. Look at the CTX and HiRISE pages for descriptions of classes for working with these data.", + "crumbs": [ + "PlanetaryPy" + ] + }, + { + "objectID": "index.html#bug-reports", + "href": "index.html#bug-reports", + "title": "PlanetaryPy", + "section": "", + "text": "Please submit bug reports at https://github.com/michaelaye/nbplanetary/issues", + "crumbs": [ + "PlanetaryPy" + ] + }, + { + "objectID": "index.html#how-to-use", + "href": "index.html#how-to-use", + "title": "PlanetaryPy", + "section": "", + "text": "See PDS apps for more details.\n\nfrom planetarypy.pds.apps import get_index\n\n\nctrindex = get_index(\"mro.ctx\", \"edr\", refresh=False)\nctrindex.sample(5, random_state=42) # setting random_state to always get same files for docs\n\n\n\n\n\n\n\n\n\nVOLUME_ID\nFILE_SPECIFICATION_NAME\nORIGINAL_PRODUCT_ID\nPRODUCT_ID\nIMAGE_TIME\nINSTRUMENT_ID\nINSTRUMENT_MODE_ID\nLINE_SAMPLES\nLINES\nSPATIAL_SUMMING\n...\nSUB_SOLAR_LATITUDE\nSUB_SPACECRAFT_LONGITUDE\nSUB_SPACECRAFT_LATITUDE\nSOLAR_DISTANCE\nSOLAR_LONGITUDE\nLOCAL_TIME\nIMAGE_SKEW_ANGLE\nRATIONALE_DESC\nDATA_QUALITY_DESC\nORBIT_NUMBER\n\n\n\n\n86101\nMROX_2757\nDATA/J07_047671_1256_XN_54S338W.IMG\n4A_04_10F0036A00\nJ07_047671_1256_XN_54S338W\n2016-09-27 00:24:54.682\nCTX\nNIFL\n2528\n8192\n1\n...\n-19.41\n338.09\n-54.43\n207762612.4\n230.58\n15.48\n90.1\nCrater in Noachis Terra\nOK\n47671\n\n\n54420\nMROX_1819\nDATA/D10_031170_1808_XN_00N221W.IMG\n4A_04_109C017D00\nD10_031170_1808_XN_00N221W\n2013-03-21 06:58:09.892\nCTX\nNIFL\n5056\n7168\n1\n...\n-24.39\n221.52\n0.88\n209925149.5\n286.15\n14.49\n90.1\nRide-along with HiRISE\nOK\n31170\n\n\n71053\nMROX_2331\nDATA/F10_039530_1470_XI_33S203W.IMG\n4A_04_10C9000F00\nF10_039530_1470_XI_33S203W\n2015-01-01 16:20:01.840\nCTX\nITL\n5056\n52224\n1\n...\n-25.3\n203.96\n-33.12\n207070298.2\n263.93\n15.2\n90.4\nTerrain in Terra Cimmeria\nOK\n39530\n\n\n51385\nMROX_1742\nDATA/D04_028919_2026_XN_22N327W.IMG\n4A_04_109002A800\nD04_028919_2026_XN_22N327W\n2012-09-26 21:17:00.483\nCTX\nNIFL\n5056\n6144\n1\n...\n0.67\n327.06\n22.78\n219814412.3\n178.44\n15.53\n90.1\nRide-along with HiRISE\nOK\n28919\n\n\n51923\nMROX_1757\nDATA/D05_029283_1524_XN_27S180W.IMG\n4A_04_1092020B00\nD05_029283_1524_XN_27S180W\n2012-10-25 05:44:21.786\nCTX\nNIFL\n5056\n9216\n1\n...\n-6.28\n178.36\n-27.56\n214830233.7\n194.72\n15.57\n90.1\nRide-along with HiRISE\nOK\n29283\n\n\n\n\n5 rows × 51 columns\n\n\n\n\n\nhirise_rdr = get_index(\"mro.hirise\", \"rdr\")\nhirise_rdr.sample(5, random_state=42)\n\n\n\n\n\n\n\n\n\nVOLUME_ID\nFILE_NAME_SPECIFICATION\nINSTRUMENT_HOST_ID\nINSTRUMENT_ID\nOBSERVATION_ID\nPRODUCT_ID\nPRODUCT_VERSION_ID\nTARGET_NAME\nORBIT_NUMBER\nMISSION_PHASE_NAME\n...\nLINE_PROJECTION_OFFSET\nSAMPLE_PROJECTION_OFFSET\nCORNER1_LATITUDE\nCORNER1_LONGITUDE\nCORNER2_LATITUDE\nCORNER2_LONGITUDE\nCORNER3_LATITUDE\nCORNER3_LONGITUDE\nCORNER4_LATITUDE\nCORNER4_LONGITUDE\n\n\n\n\n144822\nMROHR_0001\nRDR/ESP/ORB_074100_074199/ESP_074107_1410/ESP_...\nMRO\nHIRISE\nESP_074107_1410\nESP_074107_1410_COLOR\n1\nMARS\n74107\nExtended Science Phase\n...\n-4568562.5\n2009279.5\n-38.7446\n159.311\n-38.7465\n159.287\n-38.614\n159.269\n-38.6121\n159.293\n\n\n22518\nMROHR_0001\nRDR/ESP/ORB_014000_014099/ESP_014080_1040/ESP_...\nMRO\nHIRISE\nESP_014080_1040\nESP_014080_1040_RED\n1\nMARS\n14080\nExtended Science Phase\n...\n-3193960.0\n-845180.0\n-76.0185\n165.215\n-76.0315\n164.858\n-75.6958\n164.658\n-75.6831\n165.005\n\n\n86634\nMROHR_0001\nRDR/ESP/ORB_046300_046399/ESP_046395_1730/ESP_...\nMRO\nHIRISE\nESP_046395_1730\nESP_046395_1730_COLOR\n1\nMARS\n46395\nExtended Science Phase\n...\n-1584330.0\n-26573400.0\n-6.9957\n292.569\n-6.9979\n292.551\n-6.6838\n292.51\n-6.6815\n292.529\n\n\n138163\nMROHR_0001\nRDR/ESP/ORB_069100_069199/ESP_069178_2345/ESP_...\nMRO\nHIRISE\nESP_069178_2345\nESP_069178_2345_RED\n1\nMARS\n69178\nExtended Science Phase\n...\n12762196.0\n15708938.0\n53.8598\n76.7591\n53.8474\n76.602\n54.0013\n76.5672\n54.0137\n76.7249\n\n\n125490\nMROHR_0001\nRDR/ESP/ORB_063500_063599/ESP_063504_1995/ESP_...\nMRO\nHIRISE\nESP_063504_1995\nESP_063504_1995_COLOR\n1\nMARS\n63504\nExtended Science Phase\n...\n4638178.5\n12794202.0\n19.4523\n124.149\n19.45\n124.128\n19.5686\n124.113\n19.5709\n124.133\n\n\n\n\n5 rows × 54 columns", + "crumbs": [ + "PlanetaryPy" + ] + }, + { + "objectID": "index.html#instrument-tools", + "href": "index.html#instrument-tools", + "title": "PlanetaryPy", + "section": "", + "text": "from planetarypy.ctx import CTX\n\n\npid = ctrindex.sample(random_state=42).squeeze().PRODUCT_ID\npid\n\n'J07_047671_1256_XN_54S338W'\n\n\n\nctx = CTX(pid)\nctx\n\nPRODUCT_ID: J07_047671_1256_XN_54S338W\nURL: https://pds-imaging.jpl.nasa.gov/data/mro/mars_reconnaissance_orbiter/ctx/mrox_2757/data/J07_047671_1256_XN_54S338W.IMG\nsource_path: /remote/trove/geo/planet/Mars/CTX/pds/mrox_2757/J07_047671_1256_XN_54S338W.IMG\nShape: (8192, 2528)\n\n\n\nctx.source_path\n\nPath('/remote/trove/geo/planet/Mars/CTX/pds/mrox_2757/J07_047671_1256_XN_54S338W.IMG')\n\n\n\nctx.download()\n\nFile exists. Use `overwrite=True` to download fresh.", + "crumbs": [ + "PlanetaryPy" + ] + }, + { + "objectID": "index.html#acknowledgements", + "href": "index.html#acknowledgements", + "title": "PlanetaryPy", + "section": "", + "text": "The creation of this library was in part supported by:\n\nNASA Cassini UVIS mission\nNASA SSW grant NNX15AH36G\nNASA PDART grant 80NSSC20K0875\nNASA SSW grant 80NSSC20K0748\nGerman Space Agency (DLR Bonn), grant 50 OO 2204, on behalf of the German Federal Ministry for Economic Affairs and Climate Action.\nThis research has made use of the USGS Integrated Software for Imagers and Spectrometers (ISIS)(Laura et al. 2022).", + "crumbs": [ + "PlanetaryPy" + ] + }, + { + "objectID": "tutorials/tutorial.html", + "href": "tutorials/tutorial.html", + "title": "Tutorial", + "section": "", + "text": "from planetarypy.pds.apps import find_indexes, get_index, find_instruments\n\n\nfind_instruments?\n\n\nSignature: find_instruments(mission: str) -> list\nDocstring: Find existing instruments for a mission.\nFile: ~/Dropbox/src/nbplanetary/planetarypy/pds/apps.py\nType: function\n\n\n\n\nfind_instruments(\"mro\")\n\n['hirise', 'ctx']\n\n\nNow, seeing that the CTX instrument is supported, one could ask what index files (= catalogs) are available, using the dotted code for mission.instrument:\n\nfind_indexes(\"mro.ctx\")\n\n['edr']\n\n\nWe only have one index file for EDR data. Let’s get it, using the now 3-segments dot-code (it returns a pandas Dataframe):\n\nindex = get_index('mro.ctx.edr', refresh=False)\nindex.head()\n\n\n\n\n\n\n\n\n\nVOLUME_ID\nFILE_SPECIFICATION_NAME\nORIGINAL_PRODUCT_ID\nPRODUCT_ID\nIMAGE_TIME\nINSTRUMENT_ID\nINSTRUMENT_MODE_ID\nLINE_SAMPLES\nLINES\nSPATIAL_SUMMING\n...\nSUB_SOLAR_LATITUDE\nSUB_SPACECRAFT_LONGITUDE\nSUB_SPACECRAFT_LATITUDE\nSOLAR_DISTANCE\nSOLAR_LONGITUDE\nLOCAL_TIME\nIMAGE_SKEW_ANGLE\nRATIONALE_DESC\nDATA_QUALITY_DESC\nORBIT_NUMBER\n\n\n\n\n0\nMROX_0001\nDATA/CRU_000001_9999_XN_99N999W.IMG\n4A_04_0001000400\nCRU_000001_9999_XN_99N999W\n2005-08-30 15:40:21.549\nCTX\nNIFL\n5056\n1024\n1\n...\n0.0\n0.0\n0.0\n0.0\n278.89\n10.16\n0.0\nInstrument checkout image of space\nOK\n-4242\n\n\n1\nMROX_0001\nDATA/CRU_000002_9999_XN_99N999W.IMG\n4A_04_0001000500\nCRU_000002_9999_XN_99N999W\n2005-09-08 15:59:45.313\nCTX\nNIFL\n5056\n15360\n1\n...\n0.0\n0.0\n0.0\n0.0\n284.48\n4.6\n0.0\nCalibration image of the Moon\nOK\n-4126\n\n\n2\nMROX_0001\nDATA/CRU_000003_9999_XN_99N999W.IMG\n4A_04_0001000600\nCRU_000003_9999_XN_99N999W\n2005-09-08 16:03:37.927\nCTX\nNIFL\n5056\n2048\n1\n...\n0.0\n0.0\n0.0\n0.0\n284.48\n4.66\n0.0\nCalibration image of Omega Centauri (globular ...\nOK\n-4126\n\n\n3\nMROX_0001\nDATA/CRU_000004_9999_XN_99N999W.IMG\n4A_04_0001000700\nCRU_000004_9999_XN_99N999W\n2005-09-08 16:08:23.841\nCTX\nNIFL\n5056\n2048\n1\n...\n0.0\n0.0\n0.0\n0.0\n284.48\n4.74\n0.0\nCalibration image of Omega Centauri (globular ...\nOK\n-4126\n\n\n4\nMROX_0001\nDATA/CRU_000005_9999_XN_99N999W.IMG\n4A_04_0001000800\nCRU_000005_9999_XN_99N999W\n2005-09-08 16:11:18.649\nCTX\nNIFL\n5056\n21504\n1\n...\n0.0\n0.0\n0.0\n0.0\n284.48\n4.79\n0.0\nCalibration image of the Moon\nOK\n-4126\n\n\n\n\n5 rows × 51 columns\n\n\n\n\nYou might have ssen, that planetarypy realized that the existing index on my disk was outdated and proceeded to get an updated one.\nThe warning is about badly formatted data on the PDS for which planetarypy had to force path names to the correct letter case. This is not something we can influence, but we reported the issue at the PDS, and here, we just let the user know, that we fudged around that issue.\nNote that the catalog ascii times have been converted to proper datetime objects, using the utility functions in planetarypy.utils. This means that you can use these times to create proper plots over time in case you are interested in catalog statistics.\n\nindex.IMAGE_TIME\n\n0 2005-08-30 15:40:21.549\n1 2005-09-08 15:59:45.313\n2 2005-09-08 16:03:37.927\n3 2005-09-08 16:08:23.841\n4 2005-09-08 16:11:18.649\n ... \n142363 2023-03-01 00:01:37.834\n142364 2023-03-01 00:15:17.076\n142365 2023-03-01 00:19:04.486\n142366 2023-03-01 00:29:24.818\n142367 2023-03-01 00:43:08.662\nName: IMAGE_TIME, Length: 142368, dtype: datetime64[ns]\n\n\nUsing standard pandas operations, we can now filte the data down, and identify a data product we are interested in:\n\nindex.columns\n\nIndex(['VOLUME_ID', 'FILE_SPECIFICATION_NAME', 'ORIGINAL_PRODUCT_ID',\n 'PRODUCT_ID', 'IMAGE_TIME', 'INSTRUMENT_ID', 'INSTRUMENT_MODE_ID',\n 'LINE_SAMPLES', 'LINES', 'SPATIAL_SUMMING', 'SCALED_PIXEL_WIDTH',\n 'PIXEL_ASPECT_RATIO', 'EMISSION_ANGLE', 'INCIDENCE_ANGLE',\n 'PHASE_ANGLE', 'CENTER_LONGITUDE', 'CENTER_LATITUDE',\n 'UPPER_LEFT_LONGITUDE', 'UPPER_LEFT_LATITUDE', 'UPPER_RIGHT_LONGITUDE',\n 'UPPER_RIGHT_LATITUDE', 'LOWER_LEFT_LONGITUDE', 'LOWER_LEFT_LATITUDE',\n 'LOWER_RIGHT_LONGITUDE', 'LOWER_RIGHT_LATITUDE', 'MISSION_PHASE_NAME',\n 'TARGET_NAME', 'SPACECRAFT_CLOCK_START_COUNT',\n 'FOCAL_PLANE_TEMPERATURE', 'LINE_EXPOSURE_DURATION', 'OFFSET_MODE_ID',\n 'SAMPLE_FIRST_PIXEL', 'SCALED_IMAGE_WIDTH', 'SCALED_IMAGE_HEIGHT',\n 'SPACECRAFT_ALTITUDE', 'TARGET_CENTER_DISTANCE', 'SLANT_DISTANCE',\n 'USAGE_NOTE', 'NORTH_AZIMUTH', 'SUB_SOLAR_AZIMUTH',\n 'SUB_SOLAR_LONGITUDE', 'SUB_SOLAR_LATITUDE', 'SUB_SPACECRAFT_LONGITUDE',\n 'SUB_SPACECRAFT_LATITUDE', 'SOLAR_DISTANCE', 'SOLAR_LONGITUDE',\n 'LOCAL_TIME', 'IMAGE_SKEW_ANGLE', 'RATIONALE_DESC', 'DATA_QUALITY_DESC',\n 'ORBIT_NUMBER'],\n dtype='object')\n\n\n\nindex.EMISSION_ANGLE.describe()\n\ncount 142368.0\nmean 4.396005\nstd 18.999974\nmin 0.0\n25% 0.1\n50% 1.56\n75% 5.94\nmax 999.9\nName: EMISSION_ANGLE, dtype: Float64\n\n\n\nindex.LOCAL_TIME.describe()\n\ncount 142368.0\nmean 15.055919\nstd 1.427996\nmin 0.0\n25% 14.65\n50% 15.12\n75% 15.53\nmax 23.99\nName: LOCAL_TIME, dtype: Float64\n\n\n\nangle_filter = index.EMISSION_ANGLE < 1.0\n\nLet’s also calculate a mean latitude and longitude instead of the image corners, for rough location filtering. As a habit, we recommend to assign lower case letters to column names that we add on top of the PDS ones:\n\nindex = index.assign(\n lat_mean=(\n index.UPPER_LEFT_LATITUDE\n + index.UPPER_RIGHT_LATITUDE\n + index.LOWER_LEFT_LATITUDE\n + index.LOWER_RIGHT_LATITUDE) /\n 4)\n\n\nindex = index.assign(\n lon_mean=(\n index.UPPER_LEFT_LONGITUDE\n + index.UPPER_RIGHT_LONGITUDE\n + index.LOWER_LEFT_LONGITUDE\n + index.LOWER_RIGHT_LONGITUDE) /\n 4)\n\n\nindex.info()\n\n<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 142368 entries, 0 to 142367\nData columns (total 53 columns):\n # Column Non-Null Count Dtype \n--- ------ -------------- ----- \n 0 VOLUME_ID 142368 non-null string \n 1 FILE_SPECIFICATION_NAME 142368 non-null string \n 2 ORIGINAL_PRODUCT_ID 142368 non-null string \n 3 PRODUCT_ID 142368 non-null string \n 4 IMAGE_TIME 142368 non-null datetime64[ns]\n 5 INSTRUMENT_ID 142368 non-null string \n 6 INSTRUMENT_MODE_ID 142368 non-null string \n 7 LINE_SAMPLES 142368 non-null Int64 \n 8 LINES 142368 non-null Int64 \n 9 SPATIAL_SUMMING 142368 non-null Int64 \n 10 SCALED_PIXEL_WIDTH 142368 non-null Float64 \n 11 PIXEL_ASPECT_RATIO 142368 non-null Float64 \n 12 EMISSION_ANGLE 142368 non-null Float64 \n 13 INCIDENCE_ANGLE 142368 non-null Float64 \n 14 PHASE_ANGLE 142368 non-null Float64 \n 15 CENTER_LONGITUDE 142368 non-null Float64 \n 16 CENTER_LATITUDE 142368 non-null Float64 \n 17 UPPER_LEFT_LONGITUDE 142368 non-null Float64 \n 18 UPPER_LEFT_LATITUDE 142368 non-null Float64 \n 19 UPPER_RIGHT_LONGITUDE 142368 non-null Float64 \n 20 UPPER_RIGHT_LATITUDE 142368 non-null Float64 \n 21 LOWER_LEFT_LONGITUDE 142368 non-null Float64 \n 22 LOWER_LEFT_LATITUDE 142368 non-null Float64 \n 23 LOWER_RIGHT_LONGITUDE 142368 non-null Float64 \n 24 LOWER_RIGHT_LATITUDE 142368 non-null Float64 \n 25 MISSION_PHASE_NAME 142368 non-null string \n 26 TARGET_NAME 142368 non-null string \n 27 SPACECRAFT_CLOCK_START_COUNT 142368 non-null string \n 28 FOCAL_PLANE_TEMPERATURE 142368 non-null Float64 \n 29 LINE_EXPOSURE_DURATION 142368 non-null Float64 \n 30 OFFSET_MODE_ID 142368 non-null string \n 31 SAMPLE_FIRST_PIXEL 142368 non-null Int64 \n 32 SCALED_IMAGE_WIDTH 142368 non-null Float64 \n 33 SCALED_IMAGE_HEIGHT 142368 non-null Float64 \n 34 SPACECRAFT_ALTITUDE 142368 non-null Float64 \n 35 TARGET_CENTER_DISTANCE 142368 non-null Float64 \n 36 SLANT_DISTANCE 142368 non-null Float64 \n 37 USAGE_NOTE 142368 non-null string \n 38 NORTH_AZIMUTH 142368 non-null Float64 \n 39 SUB_SOLAR_AZIMUTH 142368 non-null Float64 \n 40 SUB_SOLAR_LONGITUDE 142368 non-null Float64 \n 41 SUB_SOLAR_LATITUDE 142368 non-null Float64 \n 42 SUB_SPACECRAFT_LONGITUDE 142368 non-null Float64 \n 43 SUB_SPACECRAFT_LATITUDE 142368 non-null Float64 \n 44 SOLAR_DISTANCE 142368 non-null Float64 \n 45 SOLAR_LONGITUDE 142368 non-null Float64 \n 46 LOCAL_TIME 142368 non-null Float64 \n 47 IMAGE_SKEW_ANGLE 142368 non-null Float64 \n 48 RATIONALE_DESC 142368 non-null string \n 49 DATA_QUALITY_DESC 142368 non-null string \n 50 ORBIT_NUMBER 142368 non-null Int64 \n 51 lat_mean 142368 non-null Float64 \n 52 lon_mean 142368 non-null Float64 \ndtypes: Float64(34), Int64(5), datetime64[ns](1), string(13)\nmemory usage: 62.9 MB\n\n\n\nlat_filter = index.lat_mean.between(-80,-60)\nlon_filter = index.lon_mean.between(0, 10)\n\n\nindex[angle_filter & lat_filter & lon_filter]\n\n\n\n\n\n\n\n\n\nVOLUME_ID\nFILE_SPECIFICATION_NAME\nORIGINAL_PRODUCT_ID\nPRODUCT_ID\nIMAGE_TIME\nINSTRUMENT_ID\nINSTRUMENT_MODE_ID\nLINE_SAMPLES\nLINES\nSPATIAL_SUMMING\n...\nSUB_SPACECRAFT_LATITUDE\nSOLAR_DISTANCE\nSOLAR_LONGITUDE\nLOCAL_TIME\nIMAGE_SKEW_ANGLE\nRATIONALE_DESC\nDATA_QUALITY_DESC\nORBIT_NUMBER\nlat_mean\nlon_mean\n\n\n\n\n1267\nMROX_0035\nDATA/P03_002074_1155_XN_64S004W.IMG\n4A_04_1008005C00\nP03_002074_1155_XN_64S004W\n2007-01-05 01:02:50.418\nCTX\nNIFL\n5056\n12288\n1\n...\n-64.59\n225779573.9\n161.53\n16.02\n90.1\nDunes in Wegener Crater in MOC R15-01815\nOK\n2074\n-64.59\n4.61\n\n\n4551\nMROX_0165\nDATA/P09_004738_1020_XN_78S008W.IMG\n4A_04_1014016300\nP09_004738_1020_XN_78S008W\n2007-07-31 14:55:12.379\nCTX\nNIFL\n5056\n52224\n1\n...\n-77.97\n210058626.6\n286.93\n15.36\n90.4\nSouth polar landforms\nOK\n4738\n-77.965\n5.9325\n\n\n4677\nMROX_0173\nDATA/P10_004883_1020_XN_78S005W.IMG\n4A_04_1016007800\nP10_004883_1020_XN_78S005W\n2007-08-11 22:05:40.494\nCTX\nNIFL\n5056\n52224\n1\n...\n-78.09\n211455781.6\n293.82\n15.27\n90.4\nSouth polar seasonal cap edge\nOK\n4883\n-78.08\n4.57\n\n\n5184\nMROX_0197\nDATA/P11_005252_1199_XI_60S008W.IMG\n4A_04_101900A800\nP11_005252_1199_XI_60S008W\n2007-09-09 16:17:03.275\nCTX\nITL\n5056\n14336\n1\n...\n-60.18\n215826377.3\n310.92\n14.58\n90.1\nSouth mid- to high-latitude crater\nOK\n5252\n-60.1875\n8.6425\n\n\n5395\nMROX_0209\nDATA/P11_005384_1066_XN_73S007W.IMG\n4A_04_1018017C00\nP11_005384_1066_XN_73S007W\n2007-09-19 23:03:52.412\nCTX\nNIFL\n5056\n35840\n1\n...\n-73.48\n217613174.8\n316.85\n14.82\n90.3\nSisyphi Cavi\nOK\n5384\n-73.48\n7.05\n\n\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n\n\n133106\nMROX_4264\nDATA/U09_074575_1037_XN_76S005W.IMG\n4A_04_117A02AC00\nU09_074575_1037_XN_76S005W\n2022-06-24 05:06:01.401\nCTX\nNIFL\n5056\n52224\n1\n...\n-76.26\n206646214.2\n252.89\n15.96\n90.4\nSisyphi Cavi region\nOK\n74575\n-76.2575\n4.98\n\n\n133926\nMROX_4298\nDATA/U10_074878_1161_XN_63S005W.IMG\n4A_04_117C022300\nU10_074878_1161_XN_63S005W\n2022-07-17 19:55:57.184\nCTX\nNIFL\n2528\n24576\n1\n...\n-63.93\n207381603.7\n267.84\n15.35\n90.2\nSouthern highlands\nOK\n74878\n-63.94\n5.53\n\n\n134438\nMROX_4315\nDATA/U10_075023_1075_XN_72S001W.IMG\n4A_04_117C042B00\nU10_075023_1075_XN_72S001W\n2022-07-29 03:04:41.315\nCTX\nNIFL\n5056\n7168\n1\n...\n-72.61\n208145471.6\n274.94\n15.41\n90.1\nRide-along with HiRISE\nOK\n75023\n-72.6275\n1.005\n\n\n135612\nMROX_4352\nDATA/U12_075498_1055_XN_74S006W.IMG\n4A_04_1180007200\nU12_075498_1055_XN_74S006W\n2022-09-04 03:17:19.126\nCTX\nNIFL\n5056\n7168\n1\n...\n-74.52\n212296356.7\n297.69\n15.13\n90.1\nRide-along with HiRISE\nOK\n75498\n-74.535\n6.62\n\n\n136976\nMROX_4402\nDATA/U13_076012_1155_XN_64S004W.IMG\n4A_04_118201BB00\nU13_076012_1155_XN_64S004W\n2022-10-14 04:35:24.111\nCTX\nNIFL\n5056\n7168\n1\n...\n-64.62\n218924928.8\n321.08\n14.71\n90.1\nRide-along with HiRISE\nOK\n76012\n-64.6275\n3.995\n\n\n\n\n119 rows × 53 columns\n\n\n\n\nCopying a PRODUCT_ID, we can now automatically download it via the CTX utilities:\n\npid = \"P03_002074_1155_XN_64S004W\"\n\n\nfrom planetarypy import ctx\n\nAbove could issue a warning that is about not finding an ISIS installation, which is required for SOME of this library’s features. Make sure your current environment has the environment variable ISISROOT and ISISDATA defined, so that planetarypy can find the ISIS tools, in case you want to use functions related to them.\nNow let’s use the CTX class to access data:\n\ndata = ctx.CTX(pid)\n\n\ndata.download()\n\nFile exists. Use `overwrite=True` to download fresh.\n\n\nThe data was downloaded to a mission- and instrument-based storage folder that was defined the first time you imported planetarypy. You can verify it’s location by looking at the config object:\n\nfrom planetarypy.config import config\n\n\nconfig.storage_root\n\nPath('/home/ayek72/mnt/slowdata/planetarypy')\n\n\nWe can now read the data into a multi-dimensional xarray, which supports elaborate indexing via its coordinates.\n\ndata.edr_da\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<xarray.DataArray 'P03_002074_1155 EDR' (y: 12288, x: 5056)>\n[62128128 values with dtype=uint8]\nCoordinates:\n * x (x) float64 0.5 1.5 2.5 3.5 ... 5.054e+03 5.054e+03 5.056e+03\n * y (y) float64 0.5 1.5 2.5 3.5 ... 1.229e+04 1.229e+04 1.229e+04\nAttributes: (12/19)\n BANDWIDTH: \n CENTER_FILTER_WAVELENGTH: \n DATA_SET_ID: \"MRO-M-CTX-2-EDR-L0-V1.0\"\n FILTER_NAME: \n INSTRUMENT_ID: CTX\n INSTRUMENT_NAME: \"CONTEXT CAMERA\"\n ... ...\n START_TIME: 2007-01-05T01:02:50.418\n STOP_TIME: 2007-01-05T01:03:13.479\n TARGET_NAME: MARS\n _FillValue: 0\n scale_factor: 1.0\n add_offset: 0.0xarray.DataArray'P03_002074_1155 EDR'y: 12288x: 5056...[62128128 values with dtype=uint8]Coordinates: (2)x(x)float640.5 1.5 2.5 ... 5.054e+03 5.056e+03array([5.0000e-01, 1.5000e+00, 2.5000e+00, ..., 5.0535e+03, 5.0545e+03,\n 5.0555e+03])y(y)float640.5 1.5 2.5 ... 1.229e+04 1.229e+04array([5.00000e-01, 1.50000e+00, 2.50000e+00, ..., 1.22855e+04, 1.22865e+04,\n 1.22875e+04])Indexes: (2)xPandasIndexPandasIndex(Float64Index([ 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5,\n 8.5, 9.5,\n ...\n 5046.5, 5047.5, 5048.5, 5049.5, 5050.5, 5051.5, 5052.5, 5053.5,\n 5054.5, 5055.5],\n dtype='float64', name='x', length=5056))yPandasIndexPandasIndex(Float64Index([ 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5,\n 7.5, 8.5, 9.5,\n ...\n 12278.5, 12279.5, 12280.5, 12281.5, 12282.5, 12283.5, 12284.5,\n 12285.5, 12286.5, 12287.5],\n dtype='float64', name='y', length=12288))Attributes: (19)BANDWIDTH :CENTER_FILTER_WAVELENGTH :DATA_SET_ID :\"MRO-M-CTX-2-EDR-L0-V1.0\"FILTER_NAME :INSTRUMENT_ID :CTXINSTRUMENT_NAME :\"CONTEXT CAMERA\"MISSION_NAME :NOTE :PRODUCER_INSTITUTION_NAME :PRODUCT_CREATION_TIME :2007-08-08T23:29:12PRODUCT_ID :\"P03_002074_1155_XN_64S004W\"PRODUCT_TYPE :SPACECRAFT_NAME :MARS_RECONNAISSANCE_ORBITERSTART_TIME :2007-01-05T01:02:50.418STOP_TIME :2007-01-05T01:03:13.479TARGET_NAME :MARS_FillValue :0scale_factor :1.0add_offset :0.0\n\n\nBut one also get the image data simply as a numpy array:\n\ndata.edr_da.values\n\narray([[ 9, 9, 10, ..., 8, 10, 8],\n [ 9, 8, 10, ..., 9, 10, 9],\n [ 9, 8, 10, ..., 8, 11, 10],\n ...,\n [11, 10, 11, ..., 10, 10, 10],\n [10, 9, 10, ..., 9, 10, 10],\n [11, 10, 10, ..., 11, 11, 10]], dtype=uint8)\n\n\nOr plot the image using holoviews and datashader, so that even large images won’t bog down your browser:\n\ndata.plot_edr()\n\n\n\n\n\n \n\n\n\n\nNote, that the above data is the uncalibrated EDR, so the dynamics of the image seem a little rough. If you have configured the ISIS properly, so that the current Python environment is aware of it (using ISISROOT and ISISDATA env variables), you can calibrate this data yourself now:", + "crumbs": [ + "tutorials", + "Tutorial" + ] + }, + { + "objectID": "tutorials/apps_demo.html", + "href": "tutorials/apps_demo.html", + "title": "PlanetaryPy Demo", + "section": "", + "text": "from planetarypy import utils\n\n\nDo you remember that the string conversion code for “day-of-year” is %j ?\n\n\nDo we want newcomers search for that in Python docs?\n\n\ntimes = [\"2002-137\", \"2005-234T13:00:00.123\"]\n\n\nisotimes = [utils.nasa_time_to_iso(t) for t in times]\nisotimes\n\n['2002-05-17', '2005-08-22T13:00:00.123000']\n\n\n\n[utils.iso_to_nasa_time(t) for t in isotimes]\n\n['2002-137', '2005-234T13:00:00.123000']\n\n\n\n\n\n\nutils.check_url_exists(\"https://michaelaye.github.io\")\n\nTrue\n\n\n\nutils.check_url_exists?\n\n\nSignature: utils.check_url_exists(url)\nDocstring: <no docstring>\nFile: ~/Dropbox/src/nbplanetary/planetarypy/utils.py\nType: function\n\n\n\n\nutils.have_internet()\n\nTrue\n\n\n\nutils.url_retrieve(\n \"https://michaelaye.github.io/talks/2021-conda-workshop-kharkiv/conda_talk_Kharkiv_conference.pdf\",\n \"talk_slides.pdf\",\n)", + "crumbs": [ + "tutorials", + "PlanetaryPy Demo" + ] + }, + { + "objectID": "tutorials/apps_demo.html#time-and-network-utils", + "href": "tutorials/apps_demo.html#time-and-network-utils", + "title": "PlanetaryPy Demo", + "section": "", + "text": "from planetarypy import utils\n\n\nDo you remember that the string conversion code for “day-of-year” is %j ?\n\n\nDo we want newcomers search for that in Python docs?\n\n\ntimes = [\"2002-137\", \"2005-234T13:00:00.123\"]\n\n\nisotimes = [utils.nasa_time_to_iso(t) for t in times]\nisotimes\n\n['2002-05-17', '2005-08-22T13:00:00.123000']\n\n\n\n[utils.iso_to_nasa_time(t) for t in isotimes]\n\n['2002-137', '2005-234T13:00:00.123000']\n\n\n\n\n\n\nutils.check_url_exists(\"https://michaelaye.github.io\")\n\nTrue\n\n\n\nutils.check_url_exists?\n\n\nSignature: utils.check_url_exists(url)\nDocstring: <no docstring>\nFile: ~/Dropbox/src/nbplanetary/planetarypy/utils.py\nType: function\n\n\n\n\nutils.have_internet()\n\nTrue\n\n\n\nutils.url_retrieve(\n \"https://michaelaye.github.io/talks/2021-conda-workshop-kharkiv/conda_talk_Kharkiv_conference.pdf\",\n \"talk_slides.pdf\",\n)", + "crumbs": [ + "tutorials", + "PlanetaryPy Demo" + ] + }, + { + "objectID": "tutorials/apps_demo.html#pds-indexes", + "href": "tutorials/apps_demo.html#pds-indexes", + "title": "PlanetaryPy Demo", + "section": "PDS Indexes", + "text": "PDS Indexes\n\nfrom planetarypy.pds.apps import find_indexes, get_index, find_instruments\n\n\nfind_indexes?\n\n\nSignature: find_indexes(instrument: str) -> list\nDocstring: Find existing indexes for an instrument.\nFile: ~/Dropbox/src/nbplanetary/planetarypy/pds/apps.py\nType: function\n\n\n\n\nfind_indexes('cassini.uvis')\n\n['index',\n 'moon_summary',\n 'ring_summary',\n 'saturn_summary',\n 'supplemental_index',\n 'versions']\n\n\n\nfind_indexes('go.ssi') # Galileo orbiter SSImager\n\n['edr']\n\n\n\nget_index?\n\n\nSignature:\nget_index(\n instr: str,\n index_name: str = '',\n refresh: bool = True,\n force: bool = False,\n) -> pandas.core.frame.DataFrame\nDocstring: Example: get_index(\"cassini.iss\", \"index\")\nFile: ~/Dropbox/src/nbplanetary/planetarypy/pds/apps.py\nType: function\n\n\n\n\nget_index(\"cassini.uvis.ring_summary\")\n\n\n\n\n\n\n\n\n\nVOLUME_ID\nFILE_SPECIFICATION_NAME\nRING_OBSERVATION_ID\nMINIMUM_RIGHT_ASCENSION\nMAXIMUM_RIGHT_ASCENSION\nMINIMUM_DECLINATION\nMAXIMUM_DECLINATION\nMINIMUM_RING_RADIUS\nMAXIMUM_RING_RADIUS\nFINEST_RING_INTERCEPT_RESOLUTION\n...\nRING_CENTER_DISTANCE\nSUB_SOLAR_RING_LONGITUDE\nSUB_OBSERVER_RING_LONGITUDE\nRING_CENTER_PHASE_ANGLE\nRING_CENTER_INCIDENCE_ANGLE\nRING_CENTER_NORTH_BASED_INCIDENCE_ANGLE\nRING_CENTER_EMISSION_ANGLE\nRING_CENTER_NORTH_BASED_EMISSION_ANGLE\nSOLAR_RING_OPENING_ANGLE\nOBSERVER_RING_OPENING_ANGLE\n\n\n\n\n0\nCOUVIS_0006\nDATA/D2004_002/EUV2004_002_12_16.LBL\nS/CO/UVIS/2004-002T12-16/EUV\n34.154493\n37.815141\n9.679762\n9.712415\n1074925.366\n3066570.289\n87709.0\n...\n86724352.465\n283.109\n215.938\n62.786\n64.404\n115.596\n73.661\n106.339\n-25.596\n-16.34\n\n\n1\nCOUVIS_0006\nDATA/D2004_002/EUV2004_002_12_32.LBL\nS/CO/UVIS/2004-002T12-32/EUV\n34.155557\n37.817313\n9.78073\n9.81348\n521741.812\n2900680.924\n87173.0\n...\n86719417.82\n283.109\n215.938\n62.787\n64.404\n115.596\n73.661\n106.339\n-25.596\n-16.34\n\n\n2\nCOUVIS_0006\nDATA/D2004_002/EUV2004_002_12_47.LBL\nS/CO/UVIS/2004-002T12-47/EUV\n34.154107\n37.816935\n9.877249\n9.909878\n64757.681\n2839690.546\n86667.0\n...\n86714483.175\n283.11\n215.938\n62.787\n64.404\n115.596\n73.661\n106.339\n-25.596\n-16.34\n\n\n3\nCOUVIS_0006\nDATA/D2004_002/EUV2004_002_13_03.LBL\nS/CO/UVIS/2004-002T13-03/EUV\n34.155193\n37.819152\n9.978176\n10.010898\n541745.355\n2872984.474\n86145.0\n...\n86709548.529\n283.11\n215.938\n62.787\n64.404\n115.596\n73.661\n106.339\n-25.596\n-16.34\n\n\n4\nCOUVIS_0006\nDATA/D2004_002/EUV2004_002_13_18.LBL\nS/CO/UVIS/2004-002T13-18/EUV\n34.157243\n37.822332\n10.077845\n10.110536\n1068459.125\n2999016.495\n85635.0\n...\n86704613.884\n283.111\n215.938\n62.788\n64.404\n115.596\n73.661\n106.339\n-25.596\n-16.34\n\n\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n\n\n167406\nCOUVIS_0060\nDATA/D2017_258/FUV2017_258_04_31.LBL\nS/CO/UVIS/2017-258T04-31/FUV\n355.156267\n93.92438\n-69.312846\n-14.507954\n126726.883\n1083278.078\n246.61634\n...\n263974.558\n178.948\n26.856\n99.681\n63.319\n63.319\n40.359\n40.359\n26.681\n49.641\n\n\n167407\nCOUVIS_0060\nDATA/D2017_258/FUV2017_258_07_00.LBL\nS/CO/UVIS/2017-258T07-00/FUV\n82.692823\n82.747154\n-4.328498\n-4.268149\n-999.0\n-999.0\n-999.0\n...\n251887.753\n178.949\n26.661\n99.192\n63.319\n63.319\n39.696\n39.696\n26.681\n50.304\n\n\n167408\nCOUVIS_0060\nDATA/D2017_258/FUV2017_258_07_15.LBL\nS/CO/UVIS/2017-258T07-15/FUV\n54.358671\n76.196366\n-4.007282\n13.298744\n-999.0\n-999.0\n-999.0\n...\n157806.504\n178.951\n68.04\n76.009\n63.319\n63.319\n34.946\n34.946\n26.681\n55.054\n\n\n167409\nCOUVIS_0060\nDATA/D2017_258/HDAC2017_258_02_14.LBL\nS/CO/UVIS/2017-258T02-14/HDAC\n129.674881\n143.379042\n-58.332263\n-48.522644\n204871.745\n219390.536\n17773.0\n...\n447586.578\n178.942\n9.923\n115.559\n63.319\n63.319\n53.073\n53.073\n26.681\n36.927\n\n\n167410\nCOUVIS_0060\nDATA/D2017_258/HDAC2017_258_02_15.LBL\nS/CO/UVIS/2017-258T02-15/HDAC\n92.532639\n116.78171\n-67.582806\n-63.392218\n98954.702\n230819.677\n12312.0\n...\n357220.013\n178.945\n15.877\n109.156\n63.319\n63.319\n47.62\n47.62\n26.681\n42.38\n\n\n\n\n167411 rows × 59 columns\n\n\n\n\n\nget_index('go.ssi.edr')\n\n\n\n\n\n\n\n\n\nSPACECRAFT_CLOCK_START_COUNT\nMISSION_NAME\nINSTRUMENT_ID\nDATA_SET_ID\nIMAGE_ID\nOBSERVATION_ID\nPRODUCT_TYPE\nTARGET_NAME\nIMAGE_TIME\nFILTER_NAME\n...\nSUB_SPACECRAFT_LINE\nSUB_SPACECRAFT_LINE_SAMPLE\nCENTER_RING_RADIUS\nVOLUME_ID\nFILE_SPECIFICATION_NAME\nCOMPRESSION_TYPE\nENCODING_MIN_COMPRESSION_RATIO\nENCODING_MAX_COMPRESSION_RATIO\nENCODING_COMPRESSION_RATIO\nPROCESSING_HISTORY_TEXT\n\n\n\n\n0\n30611.0\nGALILEO\nSSI\nGO-V/E-SSI-2-REDR-V1.1\nUNK\nPOST_LAUNCH_CHECKOUT\nREDR\nBLACK_SKY\nNaT\nCLEAR\n...\n-999.0\n-999.0\n-999\nGO_0002\nRAW_CAL/C0003061100R.IMG\nNONE\n0.0\n0.0\n0.0\nVICAR programs run: CATLABEL,BADLABEL,COPY.\n\n\n1\n30612.0\nGALILEO\nSSI\nGO-V/E-SSI-2-REDR-V1.1\nUNK\nPOST_LAUNCH_CHECKOUT\nREDR\nBLACK_SKY\nNaT\nCLEAR\n...\n-999.0\n-999.0\n-999\nGO_0002\nRAW_CAL/C0003061200R.IMG\nNONE\n0.0\n0.0\n0.0\nVICAR programs run: CATLABEL,BADLABEL,COPY.\n\n\n2\n30613.0\nGALILEO\nSSI\nGO-V/E-SSI-2-REDR-V1.1\nUNK\nPOST_LAUNCH_CHECKOUT\nREDR\nBLACK_SKY\nNaT\nCLEAR\n...\n-999.0\n-999.0\n-999\nGO_0002\nRAW_CAL/C0003061300R.IMG\nNONE\n0.0\n0.0\n0.0\nVICAR programs run: CATLABEL,BADLABEL,COPY.\n\n\n3\n30614.0\nGALILEO\nSSI\nGO-V/E-SSI-2-REDR-V1.1\nUNK\nPOST_LAUNCH_CHECKOUT\nREDR\nBLACK_SKY\nNaT\nCLEAR\n...\n-999.0\n-999.0\n-999\nGO_0002\nRAW_CAL/C0003061400R.IMG\nNONE\n0.0\n0.0\n0.0\nVICAR programs run: CATLABEL,BADLABEL,COPY.\n\n\n4\n30619.0\nGALILEO\nSSI\nGO-V/E-SSI-2-REDR-V1.1\nUNK\nPOST_LAUNCH_CHECKOUT\nREDR\nBLACK_SKY\nNaT\nCLEAR\n...\n-999.0\n-999.0\n-999\nGO_0002\nRAW_CAL/C0003061900R.IMG\nNONE\n0.0\n0.0\n0.0\nVICAR programs run: CATLABEL,BADLABEL,COPY.\n\n\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n\n\n14904\n6006608.22\nGALILEO\nSSI\nGO-J/JSA-SSI-4-REDR-V1.0\n29N0033\n29NSFLTFLD03\nREDR\nNON_SCIENC\nNaT\nIR-7270\n...\n-999.0\n-999.0\n-999\nGO_0023\nG29/REPAIRED/C0600660822S.IMG\nINTEGER COSINE TRANSFORM\n38.918\n16.986\n76.488\nVICAR programs run:SSIMERGE,F2,FASTMOS,FASTMOS...\n\n\n14905\n6006608.23\nGALILEO\nSSI\nGO-J/JSA-SSI-4-REDR-V1.0\n29N0033\n29NSFLTFLD03\nREDR\nNON_SCIENC\nNaT\nIR-7270\n...\n-999.0\n-999.0\n-999\nGO_0023\nG29/REPAIRED/C0600660823S.IMG\nHUFFMAN\n0.0\n0.0\n0.0\nVICAR programs run:SSIMERGE,F2,FASTMOS,FASTMOS...\n\n\n14906\n6006609.68\nGALILEO\nSSI\nGO-J/JSA-SSI-4-REDR-V1.0\n29N0034\n29NSFLTFLD03\nREDR\nNON_SCIENC\nNaT\nIR-8890\n...\n-999.0\n-999.0\n-999\nGO_0023\nG29/REPAIRED/C0600660968S.IMG\nINTEGER COSINE TRANSFORM\n6.054\n4.92\n8.212\nVICAR programs run:SSIMERGE,F2,FASTMOS,FASTMOS...\n\n\n14907\n6006609.69\nGALILEO\nSSI\nGO-J/JSA-SSI-4-REDR-V1.0\n29N0034\n29NSFLTFLD03\nREDR\nNON_SCIENC\nNaT\nIR-8890\n...\n-999.0\n-999.0\n-999\nGO_0023\nG29/REPAIRED/C0600660969S.IMG\nHUFFMAN\n0.0\n0.0\n0.0\nVICAR programs run:SSIMERGE,F2,FASTMOS,FASTMOS...\n\n\n14908\n4203615.0\nGALILEO\nSSI\nGO-J/JSA-SSI-2-REDR-V1.0\n11I0003\n11ISECLIPS01\nREDR\nIO\nNaT\nCLEAR\n...\n254.092\n334.653\n-999\nGO_0023\nREDO/E11/IO/C0420361500R.IMG\nINTEGER COSINE TRANSFORM\n8.354\n6.843\n9.709\nVICAR programs run: SSIMERGE,UNMOSAIC,CATLABEL...\n\n\n\n\n14909 rows × 52 columns\n\n\n\n\n\nfind_indexes(\"cassini.iss\")\n\n['index', 'inventory', 'moon_summary', 'ring_summary', 'saturn_summary']\n\n\n\nget_index(\"cassini.iss.saturn_summary\")\n\n\n\n\n\n\n\n\n\nVOLUME_ID\nFILE_SPECIFICATION_NAME\nOPUS_ID\nTARGET_NAME\nMINIMUM_PLANETOCENTRIC_LATITUDE\nMAXIMUM_PLANETOCENTRIC_LATITUDE\nMINIMUM_PLANETOGRAPHIC_LATITUDE\nMAXIMUM_PLANETOGRAPHIC_LATITUDE\nMINIMUM_IAU_LONGITUDE\nMAXIMUM_IAU_LONGITUDE\n...\nMAXIMUM_EMISSION_ANGLE\nSUB_SOLAR_PLANETOCENTRIC_LATITUDE\nSUB_SOLAR_PLANETOGRAPHIC_LATITUDE\nSUB_OBSERVER_PLANETOCENTRIC_LATITUDE\nSUB_OBSERVER_PLANETOGRAPHIC_LATITUDE\nSUB_SOLAR_IAU_LONGITUDE\nSUB_OBSERVER_IAU_LONGITUDE\nCENTER_RESOLUTION\nCENTER_DISTANCE\nCENTER_PHASE_ANGLE\n\n\n\n\n0\nCOISS_2001\ndata/1454725799_1455008789/N1454725799_1.LBL\nco-iss-n1454725799\nSATURN\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n-999.0\n-25.411\n-30.279\n-16.324\n-19.796\n107.986\n176.558\n424.67606\n70874998.947\n64.07\n\n\n1\nCOISS_2001\ndata/1454725799_1455008789/N1454726579_1.LBL\nco-iss-n1454726579\nSATURN\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n-999.0\n-25.411\n-30.279\n-16.324\n-19.796\n115.305\n183.877\n424.65121\n70870851.371\n64.07\n\n\n2\nCOISS_2001\ndata/1454725799_1455008789/N1454727359_1.LBL\nco-iss-n1454727359\nSATURN\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n-999.0\n-25.411\n-30.279\n-16.324\n-19.796\n122.625\n191.197\n424.62635\n70866703.094\n64.071\n\n\n3\nCOISS_2001\ndata/1454725799_1455008789/N1454728139_1.LBL\nco-iss-n1454728139\nSATURN\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n-999.0\n-25.411\n-30.279\n-16.324\n-19.796\n129.94\n198.513\n424.60151\n70862557.207\n64.071\n\n\n4\nCOISS_2001\ndata/1454725799_1455008789/N1454728919_1.LBL\nco-iss-n1454728919\nSATURN\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n-999.0\n-25.411\n-30.279\n-16.324\n-19.796\n137.264\n205.837\n424.57664\n70858406.794\n64.071\n\n\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n\n\n405116\nCOISS_2116\ndata/1884113741_1884114531/W1884114471_1.LBL\nco-iss-w1884114471\nSATURN\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n51.97\n26.682\n31.701\n29.262\n34.552\n263.715\n79.081\n75.81817\n634269.821\n123.878\n\n\n405117\nCOISS_2116\ndata/1884113741_1884114531/N1884114501_1.LBL\nco-iss-n1884114501\nSATURN\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n30.558\n26.682\n31.701\n29.269\n34.56\n263.996\n79.357\n7.59837\n634053.296\n123.87\n\n\n405118\nCOISS_2116\ndata/1884113741_1884114531/W1884114501_1.LBL\nco-iss-w1884114501\nSATURN\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n52.192\n26.682\n31.701\n29.27\n34.56\n264.004\n79.364\n75.79162\n634047.739\n123.87\n\n\n405119\nCOISS_2116\ndata/1884113741_1884114531/N1884114531_1.LBL\nco-iss-n1884114531\nSATURN\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n30.665\n26.682\n31.701\n29.277\n34.568\n264.278\n79.633\n7.59578\n633836.731\n123.863\n\n\n405120\nCOISS_2116\ndata/1884113741_1884114531/W1884114531_2.LBL\nco-iss-w1884114531\nSATURN\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n...\n52.474\n26.682\n31.701\n29.277\n34.568\n264.286\n79.641\n75.76561\n633830.161\n123.862\n\n\n\n\n405121 rows × 35 columns\n\n\n\n\n\nfind_indexes('mro.ctx')\n\n['edr']\n\n\n\nget_index('mro.ctx', 'edr', refresh=False)\n\n\n\n\n\n\n\n\n\nVOLUME_ID\nFILE_SPECIFICATION_NAME\nORIGINAL_PRODUCT_ID\nPRODUCT_ID\nIMAGE_TIME\nINSTRUMENT_ID\nINSTRUMENT_MODE_ID\nLINE_SAMPLES\nLINES\nSPATIAL_SUMMING\n...\nSUB_SOLAR_LATITUDE\nSUB_SPACECRAFT_LONGITUDE\nSUB_SPACECRAFT_LATITUDE\nSOLAR_DISTANCE\nSOLAR_LONGITUDE\nLOCAL_TIME\nIMAGE_SKEW_ANGLE\nRATIONALE_DESC\nDATA_QUALITY_DESC\nORBIT_NUMBER\n\n\n\n\n0\nMROX_0001\nDATA/CRU_000001_9999_XN_99N999W.IMG\n4A_04_0001000400\nCRU_000001_9999_XN_99N999W\n2005-08-30 15:40:21.549\nCTX\nNIFL\n5056\n1024\n1\n...\n0.0\n0.0\n0.0\n0.0\n278.89\n10.16\n0.0\nInstrument checkout image of space\nOK\n-4242\n\n\n1\nMROX_0001\nDATA/CRU_000002_9999_XN_99N999W.IMG\n4A_04_0001000500\nCRU_000002_9999_XN_99N999W\n2005-09-08 15:59:45.313\nCTX\nNIFL\n5056\n15360\n1\n...\n0.0\n0.0\n0.0\n0.0\n284.48\n4.6\n0.0\nCalibration image of the Moon\nOK\n-4126\n\n\n2\nMROX_0001\nDATA/CRU_000003_9999_XN_99N999W.IMG\n4A_04_0001000600\nCRU_000003_9999_XN_99N999W\n2005-09-08 16:03:37.927\nCTX\nNIFL\n5056\n2048\n1\n...\n0.0\n0.0\n0.0\n0.0\n284.48\n4.66\n0.0\nCalibration image of Omega Centauri (globular ...\nOK\n-4126\n\n\n3\nMROX_0001\nDATA/CRU_000004_9999_XN_99N999W.IMG\n4A_04_0001000700\nCRU_000004_9999_XN_99N999W\n2005-09-08 16:08:23.841\nCTX\nNIFL\n5056\n2048\n1\n...\n0.0\n0.0\n0.0\n0.0\n284.48\n4.74\n0.0\nCalibration image of Omega Centauri (globular ...\nOK\n-4126\n\n\n4\nMROX_0001\nDATA/CRU_000005_9999_XN_99N999W.IMG\n4A_04_0001000800\nCRU_000005_9999_XN_99N999W\n2005-09-08 16:11:18.649\nCTX\nNIFL\n5056\n21504\n1\n...\n0.0\n0.0\n0.0\n0.0\n284.48\n4.79\n0.0\nCalibration image of the Moon\nOK\n-4126\n\n\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n...\n\n\n142363\nMROX_4656\nDATA/U17_077781_1107_XI_69S045W.IMG\n4A_04_118B04B300\nU17_077781_1107_XI_69S045W\n2023-03-01 00:01:37.834\nCTX\nITL\n5056\n7168\n1\n...\n12.74\n46.17\n-69.47\n243271024.8\n30.8\n15.42\n90.1\nSouthern autumn frost streak area in Viking 2 ...\nOK\n77781\n\n\n142364\nMROX_4656\nDATA/U17_077781_1560_XN_24S055W.IMG\n4A_04_118A04B400\nU17_077781_1560_XN_24S055W\n2023-03-01 00:15:17.076\nCTX\nNIFL\n5056\n30720\n1\n...\n12.74\n55.44\n-24.08\n243270437.8\n30.81\n14.96\n90.2\nRide-along with HiRISE\nOK\n77781\n\n\n142365\nMROX_4656\nDATA/U17_077781_1683_XN_11S057W.IMG\n4A_04_118A04B500\nU17_077781_1683_XN_11S057W\n2023-03-01 00:19:04.486\nCTX\nNIFL\n5056\n31744\n1\n...\n12.74\n57.0\n-11.7\n243270441.7\n30.81\n14.91\n90.2\nTerrain north of Coprates Chasma\nOK\n77781\n\n\n142366\nMROX_4656\nDATA/U17_077781_2027_XI_22N061W.IMG\n4A_04_118B04B600\nU17_077781_2027_XI_22N061W\n2023-03-01 00:29:24.818\nCTX\nITL\n5056\n52224\n1\n...\n12.74\n61.25\n22.78\n243271031.7\n30.81\n14.82\n89.8\nKasei Valles region\nOK\n77781\n\n\n142367\nMROX_4656\nDATA/U17_077781_2440_XN_64N067W.IMG\n4A_04_118A04B700\nU17_077781_2440_XN_64N067W\n2023-03-01 00:43:08.662\nCTX\nNIFL\n5056\n7168\n1\n...\n12.74\n68.76\n64.02\n243272920.6\n30.82\n14.59\n89.9\nRide-along with HiRISE\nOK\n77781\n\n\n\n\n142368 rows × 51 columns\n\n\n\n\n\nfind_instruments('cassini')\n\n['iss', 'uvis']\n\n\n\nfind_instruments('mro')\n\n['hirise', 'ctx']\n\n\n\nfind_instruments('lro')\n\n['diviner', 'lola', 'lroc']", + "crumbs": [ + "tutorials", + "PlanetaryPy Demo" + ] + }, + { + "objectID": "tutorials/apps_demo.html#instrument-data", + "href": "tutorials/apps_demo.html#instrument-data", + "title": "PlanetaryPy Demo", + "section": "Instrument data", + "text": "Instrument data\n\nfrom planetarypy.uvis import DataManager\n\n\nindex = get_index(\"cassini.uvis.index\")\n\n\nindex.tail()\n\n\n\n\n\n\n\n\n\nFILE_NAME\nOBSERVATION_TYPE\nSTART_TIME\nSTOP_TIME\nTARGET_NAME\nDATA_SET_ID\nSPACECRAFT_CLOCK_START_COUNT\nSPACECRAFT_CLOCK_STOP_COUNT\nINTEGRATION_DURATION\nCOMPRESSION_TYPE\n...\nSUB_SOLAR_LONGITUDE\nSUB_SPACECRAFT_LATITUDE\nSUB_SPACECRAFT_LONGITUDE\nPHASE_ANGLE\nEMISSION_ANGLE\nSOLAR_INCIDENCE_ANGLE\nCENTRAL_BODY_DISTANCE\nDWELL_TIME\nH_LEVEL\nD_LEVEL\n\n\n\n\n203240\n/COUVIS_0060/DATA/D2017_258/FUV2017_258_04_31.LBL\n<NA>\n2017-09-15 04:31:53.005\n2017-09-15 09:04:56.755\nSOLAR WIND\nCO-S-UVIS-2-CUBE-V1.4\n1/1884145299.160\nUNK\n8191.875\nSQRT_9\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n-999\n<NA>\n<NA>\n\n\n203241\n/COUVIS_0060/DATA/D2017_258/FUV2017_258_07_00.LBL\n<NA>\n2017-09-15 07:00:27.697\n2017-09-15 07:13:40.447\nSOLAR WIND\nCO-S-UVIS-2-SPEC-V1.4\n1/1884154214.096\nUNK\n2.625\nSQRT_9\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n-999\n<NA>\n<NA>\n\n\n203242\n/COUVIS_0060/DATA/D2017_258/FUV2017_258_07_15.LBL\n<NA>\n2017-09-15 07:15:04.442\n2017-09-15 10:31:51.692\nSOLAR WIND\nCO-S-UVIS-2-SPEC-V1.4\n1/1884155091.032\nUNK\n2.625\nSQRT_9\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n-999\n<NA>\n<NA>\n\n\n203243\n/COUVIS_0060/DATA/D2017_258/HDAC2017_258_02_14...\n<NA>\n2017-09-15 02:14:02.433\n2017-09-15 02:14:06.433\nSOLAR WIND\nCO-S-UVIS-2-SSB-V1.4\n1/1884137029.000\nUNK\n-999.0\nNONE\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n1\n(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)\n(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)\n\n\n203244\n/COUVIS_0060/DATA/D2017_258/HDAC2017_258_02_15...\n<NA>\n2017-09-15 02:15:25.058\n2017-09-15 02:17:33.058\nSOLAR WIND\nCO-S-UVIS-2-SSB-V1.4\n1/1884137111.160\nUNK\n-999.0\nNONE\n...\n-999.0\n-999.0\n-999.0\n-999.0\n-999.0\n-999\n-999.0\n32\n(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)\n(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)\n\n\n\n\n5 rows × 28 columns\n\n\n\n\n\ndm = DataManager(\"EUV2017_258_07_00\")\n\n\ndm.calib_label_path\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2017_258_07_00/EUV2017_258_07_00_CAL_3.LBL')\n\n\n\ndm.raw_data_path\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2017_258_07_00/EUV2017_258_07_00.DAT')\n\n\n\ndm.raw_label_path\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2017_258_07_00/EUV2017_258_07_00.LBL')\n\n\n\nfrom planetarypy.hirise import ProductPathfinder\n\n\n\n\n\n\n\n\n\n\n\nppf = ProductPathfinder(\"PSP_003092_0985_RED\")\n\n\nppf.local_label_path\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/PSP_003092_0985/PSP_003092_0985_RED.LBL')\n\n\n\nppf.abrowse_path\n\nPath('EXTRAS/RDR/PSP/ORB_003000_003099/PSP_003092_0985/PSP_003092_0985_RED.abrowse.jpg')\n\n\n\nppf.homepage\n\n'https://uahirise.org/PSP_003092_0985'\n\n\n\nppf.nomap_jp2_url\n\nURL('https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/PSP/ORB_003000_003099/PSP_003092_0985/PSP_003092_0985_RED.NOMAP.JP2')\n\n\n\nfrom planetarypy.hirise import RGB_NOMAP\n\n\nrgb = RGB_NOMAP(\"PSP_003092_0985\")\n\n\nrgb.local_path\n\nPath('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/PSP_003092_0985/PSP_003092_0985_RGB.NOMAP.JP2')", + "crumbs": [ + "tutorials", + "PlanetaryPy Demo" + ] + } +] \ No newline at end of file diff --git a/site_libs/bootstrap/bootstrap-icons.css b/site_libs/bootstrap/bootstrap-icons.css new file mode 100644 index 0000000..285e444 --- /dev/null +++ b/site_libs/bootstrap/bootstrap-icons.css @@ -0,0 +1,2078 @@ +/*! + * Bootstrap Icons v1.11.1 (https://icons.getbootstrap.com/) + * Copyright 2019-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE) + */ + +@font-face { + font-display: block; + font-family: "bootstrap-icons"; + src: +url("./bootstrap-icons.woff?2820a3852bdb9a5832199cc61cec4e65") format("woff"); +} + +.bi::before, +[class^="bi-"]::before, +[class*=" bi-"]::before { + display: inline-block; + font-family: bootstrap-icons !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.bi-123::before { content: "\f67f"; } +.bi-alarm-fill::before { content: "\f101"; } +.bi-alarm::before { content: "\f102"; } +.bi-align-bottom::before { content: "\f103"; } +.bi-align-center::before { content: "\f104"; } +.bi-align-end::before { content: "\f105"; } +.bi-align-middle::before { content: "\f106"; } +.bi-align-start::before { content: "\f107"; } +.bi-align-top::before { content: "\f108"; } +.bi-alt::before { content: "\f109"; } +.bi-app-indicator::before { content: "\f10a"; } +.bi-app::before { content: "\f10b"; } +.bi-archive-fill::before { content: "\f10c"; } +.bi-archive::before { content: "\f10d"; } +.bi-arrow-90deg-down::before { content: "\f10e"; } +.bi-arrow-90deg-left::before { content: "\f10f"; } +.bi-arrow-90deg-right::before { content: "\f110"; } +.bi-arrow-90deg-up::before { content: "\f111"; } +.bi-arrow-bar-down::before { content: "\f112"; } +.bi-arrow-bar-left::before { content: "\f113"; } +.bi-arrow-bar-right::before { content: "\f114"; } +.bi-arrow-bar-up::before { content: "\f115"; } +.bi-arrow-clockwise::before { content: "\f116"; } +.bi-arrow-counterclockwise::before { content: "\f117"; } +.bi-arrow-down-circle-fill::before { content: "\f118"; } +.bi-arrow-down-circle::before { content: "\f119"; } +.bi-arrow-down-left-circle-fill::before { content: "\f11a"; } +.bi-arrow-down-left-circle::before { content: "\f11b"; } +.bi-arrow-down-left-square-fill::before { content: "\f11c"; } +.bi-arrow-down-left-square::before { content: "\f11d"; } +.bi-arrow-down-left::before { content: "\f11e"; } +.bi-arrow-down-right-circle-fill::before { content: "\f11f"; } +.bi-arrow-down-right-circle::before { content: "\f120"; } +.bi-arrow-down-right-square-fill::before { content: "\f121"; } +.bi-arrow-down-right-square::before { content: "\f122"; } +.bi-arrow-down-right::before { content: "\f123"; } +.bi-arrow-down-short::before { content: "\f124"; } +.bi-arrow-down-square-fill::before { content: "\f125"; } +.bi-arrow-down-square::before { content: "\f126"; } +.bi-arrow-down-up::before { content: "\f127"; } +.bi-arrow-down::before { content: "\f128"; } +.bi-arrow-left-circle-fill::before { content: "\f129"; } +.bi-arrow-left-circle::before { content: "\f12a"; } +.bi-arrow-left-right::before { content: "\f12b"; } +.bi-arrow-left-short::before { content: "\f12c"; } +.bi-arrow-left-square-fill::before { content: "\f12d"; } +.bi-arrow-left-square::before { content: "\f12e"; } +.bi-arrow-left::before { content: "\f12f"; } +.bi-arrow-repeat::before { content: "\f130"; } +.bi-arrow-return-left::before { content: "\f131"; } +.bi-arrow-return-right::before { content: "\f132"; } +.bi-arrow-right-circle-fill::before { content: "\f133"; } +.bi-arrow-right-circle::before { content: "\f134"; } +.bi-arrow-right-short::before { content: "\f135"; } +.bi-arrow-right-square-fill::before { content: "\f136"; } +.bi-arrow-right-square::before { content: "\f137"; } +.bi-arrow-right::before { content: "\f138"; } +.bi-arrow-up-circle-fill::before { content: "\f139"; } +.bi-arrow-up-circle::before { content: "\f13a"; } +.bi-arrow-up-left-circle-fill::before { content: "\f13b"; } +.bi-arrow-up-left-circle::before { content: "\f13c"; } +.bi-arrow-up-left-square-fill::before { content: "\f13d"; } +.bi-arrow-up-left-square::before { content: "\f13e"; } +.bi-arrow-up-left::before { content: "\f13f"; } +.bi-arrow-up-right-circle-fill::before { content: "\f140"; } +.bi-arrow-up-right-circle::before { content: "\f141"; } +.bi-arrow-up-right-square-fill::before { content: "\f142"; } +.bi-arrow-up-right-square::before { content: "\f143"; } +.bi-arrow-up-right::before { content: "\f144"; } +.bi-arrow-up-short::before { content: "\f145"; } +.bi-arrow-up-square-fill::before { content: "\f146"; } +.bi-arrow-up-square::before { content: "\f147"; } +.bi-arrow-up::before { content: "\f148"; } +.bi-arrows-angle-contract::before { content: "\f149"; } +.bi-arrows-angle-expand::before { content: "\f14a"; } +.bi-arrows-collapse::before { content: "\f14b"; } +.bi-arrows-expand::before { content: "\f14c"; } +.bi-arrows-fullscreen::before { content: "\f14d"; } +.bi-arrows-move::before { content: "\f14e"; } +.bi-aspect-ratio-fill::before { content: "\f14f"; } +.bi-aspect-ratio::before { content: "\f150"; } +.bi-asterisk::before { content: "\f151"; } +.bi-at::before { content: "\f152"; } +.bi-award-fill::before { content: "\f153"; } +.bi-award::before { content: "\f154"; } +.bi-back::before { content: "\f155"; } +.bi-backspace-fill::before { content: "\f156"; } +.bi-backspace-reverse-fill::before { content: "\f157"; } +.bi-backspace-reverse::before { content: "\f158"; } +.bi-backspace::before { content: "\f159"; } +.bi-badge-3d-fill::before { content: "\f15a"; } +.bi-badge-3d::before { content: "\f15b"; } +.bi-badge-4k-fill::before { content: "\f15c"; } +.bi-badge-4k::before { content: "\f15d"; } +.bi-badge-8k-fill::before { content: "\f15e"; } +.bi-badge-8k::before { content: "\f15f"; } +.bi-badge-ad-fill::before { content: "\f160"; } +.bi-badge-ad::before { content: "\f161"; } +.bi-badge-ar-fill::before { content: "\f162"; } +.bi-badge-ar::before { content: "\f163"; } +.bi-badge-cc-fill::before { content: "\f164"; } +.bi-badge-cc::before { content: "\f165"; } +.bi-badge-hd-fill::before { content: "\f166"; } +.bi-badge-hd::before { content: "\f167"; } +.bi-badge-tm-fill::before { content: "\f168"; } +.bi-badge-tm::before { content: "\f169"; } +.bi-badge-vo-fill::before { content: "\f16a"; } +.bi-badge-vo::before { content: "\f16b"; } +.bi-badge-vr-fill::before { content: "\f16c"; } +.bi-badge-vr::before { content: "\f16d"; } +.bi-badge-wc-fill::before { content: "\f16e"; } +.bi-badge-wc::before { content: "\f16f"; } +.bi-bag-check-fill::before { content: "\f170"; } +.bi-bag-check::before { content: "\f171"; } +.bi-bag-dash-fill::before { content: "\f172"; } +.bi-bag-dash::before { content: "\f173"; } +.bi-bag-fill::before { content: "\f174"; } +.bi-bag-plus-fill::before { content: "\f175"; } +.bi-bag-plus::before { content: "\f176"; } +.bi-bag-x-fill::before { content: "\f177"; } +.bi-bag-x::before { content: "\f178"; } +.bi-bag::before { content: "\f179"; } +.bi-bar-chart-fill::before { content: "\f17a"; } +.bi-bar-chart-line-fill::before { content: "\f17b"; } +.bi-bar-chart-line::before { content: "\f17c"; } +.bi-bar-chart-steps::before { content: "\f17d"; } +.bi-bar-chart::before { content: "\f17e"; } +.bi-basket-fill::before { content: "\f17f"; } +.bi-basket::before { content: "\f180"; } +.bi-basket2-fill::before { content: "\f181"; } +.bi-basket2::before { content: "\f182"; } +.bi-basket3-fill::before { content: "\f183"; } +.bi-basket3::before { content: "\f184"; } +.bi-battery-charging::before { content: "\f185"; } +.bi-battery-full::before { content: "\f186"; } +.bi-battery-half::before { content: "\f187"; } +.bi-battery::before { content: "\f188"; } +.bi-bell-fill::before { content: "\f189"; } +.bi-bell::before { content: "\f18a"; } +.bi-bezier::before { content: "\f18b"; } +.bi-bezier2::before { content: "\f18c"; } +.bi-bicycle::before { content: "\f18d"; } +.bi-binoculars-fill::before { content: "\f18e"; } +.bi-binoculars::before { content: "\f18f"; } +.bi-blockquote-left::before { content: "\f190"; } +.bi-blockquote-right::before { content: "\f191"; } +.bi-book-fill::before { content: "\f192"; } +.bi-book-half::before { content: "\f193"; } +.bi-book::before { content: "\f194"; } +.bi-bookmark-check-fill::before { content: "\f195"; } +.bi-bookmark-check::before { content: "\f196"; } +.bi-bookmark-dash-fill::before { content: "\f197"; } +.bi-bookmark-dash::before { content: "\f198"; } +.bi-bookmark-fill::before { content: "\f199"; } +.bi-bookmark-heart-fill::before { content: "\f19a"; } +.bi-bookmark-heart::before { content: "\f19b"; } +.bi-bookmark-plus-fill::before { content: "\f19c"; } +.bi-bookmark-plus::before { content: "\f19d"; } +.bi-bookmark-star-fill::before { content: "\f19e"; } +.bi-bookmark-star::before { content: "\f19f"; } +.bi-bookmark-x-fill::before { content: "\f1a0"; } +.bi-bookmark-x::before { content: "\f1a1"; } +.bi-bookmark::before { content: "\f1a2"; } +.bi-bookmarks-fill::before { content: "\f1a3"; } +.bi-bookmarks::before { content: "\f1a4"; } +.bi-bookshelf::before { content: "\f1a5"; } +.bi-bootstrap-fill::before { content: "\f1a6"; } +.bi-bootstrap-reboot::before { content: "\f1a7"; } +.bi-bootstrap::before { content: "\f1a8"; } +.bi-border-all::before { content: "\f1a9"; } +.bi-border-bottom::before { content: "\f1aa"; } +.bi-border-center::before { content: "\f1ab"; } +.bi-border-inner::before { content: "\f1ac"; } +.bi-border-left::before { content: "\f1ad"; } +.bi-border-middle::before { content: "\f1ae"; } +.bi-border-outer::before { content: "\f1af"; } +.bi-border-right::before { content: "\f1b0"; } +.bi-border-style::before { content: "\f1b1"; } +.bi-border-top::before { content: "\f1b2"; } +.bi-border-width::before { content: "\f1b3"; } +.bi-border::before { content: "\f1b4"; } +.bi-bounding-box-circles::before { content: "\f1b5"; } +.bi-bounding-box::before { content: "\f1b6"; } +.bi-box-arrow-down-left::before { content: "\f1b7"; } +.bi-box-arrow-down-right::before { content: "\f1b8"; } +.bi-box-arrow-down::before { content: "\f1b9"; } +.bi-box-arrow-in-down-left::before { content: "\f1ba"; } +.bi-box-arrow-in-down-right::before { content: "\f1bb"; } +.bi-box-arrow-in-down::before { content: "\f1bc"; } +.bi-box-arrow-in-left::before { content: "\f1bd"; } +.bi-box-arrow-in-right::before { content: "\f1be"; } +.bi-box-arrow-in-up-left::before { content: "\f1bf"; } +.bi-box-arrow-in-up-right::before { content: "\f1c0"; } +.bi-box-arrow-in-up::before { content: "\f1c1"; } +.bi-box-arrow-left::before { content: "\f1c2"; } +.bi-box-arrow-right::before { content: "\f1c3"; } +.bi-box-arrow-up-left::before { content: "\f1c4"; } +.bi-box-arrow-up-right::before { content: "\f1c5"; } +.bi-box-arrow-up::before { content: "\f1c6"; } +.bi-box-seam::before { content: "\f1c7"; } +.bi-box::before { content: "\f1c8"; } +.bi-braces::before { content: "\f1c9"; } +.bi-bricks::before { content: "\f1ca"; } +.bi-briefcase-fill::before { content: "\f1cb"; } +.bi-briefcase::before { content: "\f1cc"; } +.bi-brightness-alt-high-fill::before { content: "\f1cd"; } +.bi-brightness-alt-high::before { content: "\f1ce"; } +.bi-brightness-alt-low-fill::before { content: "\f1cf"; } +.bi-brightness-alt-low::before { content: "\f1d0"; } +.bi-brightness-high-fill::before { content: "\f1d1"; } +.bi-brightness-high::before { content: "\f1d2"; } +.bi-brightness-low-fill::before { content: "\f1d3"; } +.bi-brightness-low::before { content: "\f1d4"; } +.bi-broadcast-pin::before { content: "\f1d5"; } +.bi-broadcast::before { content: "\f1d6"; } +.bi-brush-fill::before { content: "\f1d7"; } +.bi-brush::before { content: "\f1d8"; } +.bi-bucket-fill::before { content: "\f1d9"; } +.bi-bucket::before { content: "\f1da"; } +.bi-bug-fill::before { content: "\f1db"; } +.bi-bug::before { content: "\f1dc"; } +.bi-building::before { content: "\f1dd"; } +.bi-bullseye::before { content: "\f1de"; } +.bi-calculator-fill::before { content: "\f1df"; } +.bi-calculator::before { content: "\f1e0"; } +.bi-calendar-check-fill::before { content: "\f1e1"; } +.bi-calendar-check::before { content: "\f1e2"; } +.bi-calendar-date-fill::before { content: "\f1e3"; } +.bi-calendar-date::before { content: "\f1e4"; } +.bi-calendar-day-fill::before { content: "\f1e5"; } +.bi-calendar-day::before { content: "\f1e6"; } +.bi-calendar-event-fill::before { content: "\f1e7"; } +.bi-calendar-event::before { content: "\f1e8"; } +.bi-calendar-fill::before { content: "\f1e9"; } +.bi-calendar-minus-fill::before { content: "\f1ea"; } +.bi-calendar-minus::before { content: "\f1eb"; } +.bi-calendar-month-fill::before { content: "\f1ec"; } +.bi-calendar-month::before { content: "\f1ed"; } +.bi-calendar-plus-fill::before { content: "\f1ee"; } +.bi-calendar-plus::before { content: "\f1ef"; } +.bi-calendar-range-fill::before { content: "\f1f0"; } +.bi-calendar-range::before { content: "\f1f1"; } +.bi-calendar-week-fill::before { content: "\f1f2"; } +.bi-calendar-week::before { content: "\f1f3"; } +.bi-calendar-x-fill::before { content: "\f1f4"; } +.bi-calendar-x::before { content: "\f1f5"; } +.bi-calendar::before { content: "\f1f6"; } +.bi-calendar2-check-fill::before { content: "\f1f7"; } +.bi-calendar2-check::before { content: "\f1f8"; } +.bi-calendar2-date-fill::before { content: "\f1f9"; } +.bi-calendar2-date::before { content: "\f1fa"; } +.bi-calendar2-day-fill::before { content: "\f1fb"; } +.bi-calendar2-day::before { content: "\f1fc"; } +.bi-calendar2-event-fill::before { content: "\f1fd"; } +.bi-calendar2-event::before { content: "\f1fe"; } +.bi-calendar2-fill::before { content: "\f1ff"; } +.bi-calendar2-minus-fill::before { content: "\f200"; } +.bi-calendar2-minus::before { content: "\f201"; } +.bi-calendar2-month-fill::before { content: "\f202"; } +.bi-calendar2-month::before { content: "\f203"; } +.bi-calendar2-plus-fill::before { content: "\f204"; } +.bi-calendar2-plus::before { content: "\f205"; } +.bi-calendar2-range-fill::before { content: "\f206"; } +.bi-calendar2-range::before { content: "\f207"; } +.bi-calendar2-week-fill::before { content: "\f208"; } +.bi-calendar2-week::before { content: "\f209"; } +.bi-calendar2-x-fill::before { content: "\f20a"; } +.bi-calendar2-x::before { content: "\f20b"; } +.bi-calendar2::before { content: "\f20c"; } +.bi-calendar3-event-fill::before { content: "\f20d"; } +.bi-calendar3-event::before { content: "\f20e"; } +.bi-calendar3-fill::before { content: "\f20f"; } +.bi-calendar3-range-fill::before { content: "\f210"; } +.bi-calendar3-range::before { content: "\f211"; } +.bi-calendar3-week-fill::before { content: "\f212"; } +.bi-calendar3-week::before { content: "\f213"; } +.bi-calendar3::before { content: "\f214"; } +.bi-calendar4-event::before { content: "\f215"; } +.bi-calendar4-range::before { content: "\f216"; } +.bi-calendar4-week::before { content: "\f217"; } +.bi-calendar4::before { content: "\f218"; } +.bi-camera-fill::before { content: "\f219"; } +.bi-camera-reels-fill::before { content: "\f21a"; } +.bi-camera-reels::before { content: "\f21b"; } +.bi-camera-video-fill::before { content: "\f21c"; } +.bi-camera-video-off-fill::before { content: "\f21d"; } +.bi-camera-video-off::before { content: "\f21e"; } +.bi-camera-video::before { content: "\f21f"; } +.bi-camera::before { content: "\f220"; } +.bi-camera2::before { content: "\f221"; } +.bi-capslock-fill::before { content: "\f222"; } +.bi-capslock::before { content: "\f223"; } +.bi-card-checklist::before { content: "\f224"; } +.bi-card-heading::before { content: "\f225"; } +.bi-card-image::before { content: "\f226"; } +.bi-card-list::before { content: "\f227"; } +.bi-card-text::before { content: "\f228"; } +.bi-caret-down-fill::before { content: "\f229"; } +.bi-caret-down-square-fill::before { content: "\f22a"; } +.bi-caret-down-square::before { content: "\f22b"; } +.bi-caret-down::before { content: "\f22c"; } +.bi-caret-left-fill::before { content: "\f22d"; } +.bi-caret-left-square-fill::before { content: "\f22e"; } +.bi-caret-left-square::before { content: "\f22f"; } +.bi-caret-left::before { content: "\f230"; } +.bi-caret-right-fill::before { content: "\f231"; } +.bi-caret-right-square-fill::before { content: "\f232"; } +.bi-caret-right-square::before { content: "\f233"; } +.bi-caret-right::before { content: "\f234"; } +.bi-caret-up-fill::before { content: "\f235"; } +.bi-caret-up-square-fill::before { content: "\f236"; } +.bi-caret-up-square::before { content: "\f237"; } +.bi-caret-up::before { content: "\f238"; } +.bi-cart-check-fill::before { content: "\f239"; } +.bi-cart-check::before { content: "\f23a"; } +.bi-cart-dash-fill::before { content: "\f23b"; } +.bi-cart-dash::before { content: "\f23c"; } +.bi-cart-fill::before { content: "\f23d"; } +.bi-cart-plus-fill::before { content: "\f23e"; } +.bi-cart-plus::before { content: "\f23f"; } +.bi-cart-x-fill::before { content: "\f240"; } +.bi-cart-x::before { content: "\f241"; } +.bi-cart::before { content: "\f242"; } +.bi-cart2::before { content: "\f243"; } +.bi-cart3::before { content: "\f244"; } +.bi-cart4::before { content: "\f245"; } +.bi-cash-stack::before { content: "\f246"; } +.bi-cash::before { content: "\f247"; } +.bi-cast::before { content: "\f248"; } +.bi-chat-dots-fill::before { content: "\f249"; } +.bi-chat-dots::before { content: "\f24a"; } +.bi-chat-fill::before { content: "\f24b"; } +.bi-chat-left-dots-fill::before { content: "\f24c"; } +.bi-chat-left-dots::before { content: "\f24d"; } +.bi-chat-left-fill::before { content: "\f24e"; } +.bi-chat-left-quote-fill::before { content: "\f24f"; } +.bi-chat-left-quote::before { content: "\f250"; } +.bi-chat-left-text-fill::before { content: "\f251"; } +.bi-chat-left-text::before { content: "\f252"; } +.bi-chat-left::before { content: "\f253"; } +.bi-chat-quote-fill::before { content: "\f254"; } +.bi-chat-quote::before { content: "\f255"; } +.bi-chat-right-dots-fill::before { content: "\f256"; } +.bi-chat-right-dots::before { content: "\f257"; } +.bi-chat-right-fill::before { content: "\f258"; } +.bi-chat-right-quote-fill::before { content: "\f259"; } +.bi-chat-right-quote::before { content: "\f25a"; } +.bi-chat-right-text-fill::before { content: "\f25b"; } +.bi-chat-right-text::before { content: "\f25c"; } +.bi-chat-right::before { content: "\f25d"; } +.bi-chat-square-dots-fill::before { content: "\f25e"; } +.bi-chat-square-dots::before { content: "\f25f"; } +.bi-chat-square-fill::before { content: "\f260"; } +.bi-chat-square-quote-fill::before { content: "\f261"; } +.bi-chat-square-quote::before { content: "\f262"; } +.bi-chat-square-text-fill::before { content: "\f263"; } +.bi-chat-square-text::before { content: "\f264"; } +.bi-chat-square::before { content: "\f265"; } +.bi-chat-text-fill::before { content: "\f266"; } +.bi-chat-text::before { content: "\f267"; } +.bi-chat::before { content: "\f268"; } +.bi-check-all::before { content: "\f269"; } +.bi-check-circle-fill::before { content: "\f26a"; } +.bi-check-circle::before { content: "\f26b"; } +.bi-check-square-fill::before { content: "\f26c"; } +.bi-check-square::before { content: "\f26d"; } +.bi-check::before { content: "\f26e"; } +.bi-check2-all::before { content: "\f26f"; } +.bi-check2-circle::before { content: "\f270"; } +.bi-check2-square::before { content: "\f271"; } +.bi-check2::before { content: "\f272"; } +.bi-chevron-bar-contract::before { content: "\f273"; } +.bi-chevron-bar-down::before { content: "\f274"; } +.bi-chevron-bar-expand::before { content: "\f275"; } +.bi-chevron-bar-left::before { content: "\f276"; } +.bi-chevron-bar-right::before { content: "\f277"; } +.bi-chevron-bar-up::before { content: "\f278"; } +.bi-chevron-compact-down::before { content: "\f279"; } +.bi-chevron-compact-left::before { content: "\f27a"; } +.bi-chevron-compact-right::before { content: "\f27b"; } +.bi-chevron-compact-up::before { content: "\f27c"; } +.bi-chevron-contract::before { content: "\f27d"; } +.bi-chevron-double-down::before { content: "\f27e"; } +.bi-chevron-double-left::before { content: "\f27f"; } +.bi-chevron-double-right::before { content: "\f280"; } +.bi-chevron-double-up::before { content: "\f281"; } +.bi-chevron-down::before { content: "\f282"; } +.bi-chevron-expand::before { content: "\f283"; } +.bi-chevron-left::before { content: "\f284"; } +.bi-chevron-right::before { content: "\f285"; } +.bi-chevron-up::before { content: "\f286"; } +.bi-circle-fill::before { content: "\f287"; } +.bi-circle-half::before { content: "\f288"; } +.bi-circle-square::before { content: "\f289"; } +.bi-circle::before { content: "\f28a"; } +.bi-clipboard-check::before { content: "\f28b"; } +.bi-clipboard-data::before { content: "\f28c"; } +.bi-clipboard-minus::before { content: "\f28d"; } +.bi-clipboard-plus::before { content: "\f28e"; } +.bi-clipboard-x::before { content: "\f28f"; } +.bi-clipboard::before { content: "\f290"; } +.bi-clock-fill::before { content: "\f291"; } +.bi-clock-history::before { content: "\f292"; } +.bi-clock::before { content: "\f293"; } +.bi-cloud-arrow-down-fill::before { content: "\f294"; } +.bi-cloud-arrow-down::before { content: "\f295"; } +.bi-cloud-arrow-up-fill::before { content: "\f296"; } +.bi-cloud-arrow-up::before { content: "\f297"; } +.bi-cloud-check-fill::before { content: "\f298"; } +.bi-cloud-check::before { content: "\f299"; } +.bi-cloud-download-fill::before { content: "\f29a"; } +.bi-cloud-download::before { content: "\f29b"; } +.bi-cloud-drizzle-fill::before { content: "\f29c"; } +.bi-cloud-drizzle::before { content: "\f29d"; } +.bi-cloud-fill::before { content: "\f29e"; } +.bi-cloud-fog-fill::before { content: "\f29f"; } +.bi-cloud-fog::before { content: "\f2a0"; } +.bi-cloud-fog2-fill::before { content: "\f2a1"; } +.bi-cloud-fog2::before { content: "\f2a2"; } +.bi-cloud-hail-fill::before { content: "\f2a3"; } +.bi-cloud-hail::before { content: "\f2a4"; } +.bi-cloud-haze-fill::before { content: "\f2a6"; } +.bi-cloud-haze::before { content: "\f2a7"; } +.bi-cloud-haze2-fill::before { content: "\f2a8"; } +.bi-cloud-lightning-fill::before { content: "\f2a9"; } +.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; } +.bi-cloud-lightning-rain::before { content: "\f2ab"; } +.bi-cloud-lightning::before { content: "\f2ac"; } +.bi-cloud-minus-fill::before { content: "\f2ad"; } +.bi-cloud-minus::before { content: "\f2ae"; } +.bi-cloud-moon-fill::before { content: "\f2af"; } +.bi-cloud-moon::before { content: "\f2b0"; } +.bi-cloud-plus-fill::before { content: "\f2b1"; } +.bi-cloud-plus::before { content: "\f2b2"; } +.bi-cloud-rain-fill::before { content: "\f2b3"; } +.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; } +.bi-cloud-rain-heavy::before { content: "\f2b5"; } +.bi-cloud-rain::before { content: "\f2b6"; } +.bi-cloud-slash-fill::before { content: "\f2b7"; } +.bi-cloud-slash::before { content: "\f2b8"; } +.bi-cloud-sleet-fill::before { content: "\f2b9"; } +.bi-cloud-sleet::before { content: "\f2ba"; } +.bi-cloud-snow-fill::before { content: "\f2bb"; } +.bi-cloud-snow::before { content: "\f2bc"; } +.bi-cloud-sun-fill::before { content: "\f2bd"; } +.bi-cloud-sun::before { content: "\f2be"; } +.bi-cloud-upload-fill::before { content: "\f2bf"; } +.bi-cloud-upload::before { content: "\f2c0"; } +.bi-cloud::before { content: "\f2c1"; } +.bi-clouds-fill::before { content: "\f2c2"; } +.bi-clouds::before { content: "\f2c3"; } +.bi-cloudy-fill::before { content: "\f2c4"; } +.bi-cloudy::before { content: "\f2c5"; } +.bi-code-slash::before { content: "\f2c6"; } +.bi-code-square::before { content: "\f2c7"; } +.bi-code::before { content: "\f2c8"; } +.bi-collection-fill::before { content: "\f2c9"; } +.bi-collection-play-fill::before { content: "\f2ca"; } +.bi-collection-play::before { content: "\f2cb"; } +.bi-collection::before { content: "\f2cc"; } +.bi-columns-gap::before { content: "\f2cd"; } +.bi-columns::before { content: "\f2ce"; } +.bi-command::before { content: "\f2cf"; } +.bi-compass-fill::before { content: "\f2d0"; } +.bi-compass::before { content: "\f2d1"; } +.bi-cone-striped::before { content: "\f2d2"; } +.bi-cone::before { content: "\f2d3"; } +.bi-controller::before { content: "\f2d4"; } +.bi-cpu-fill::before { content: "\f2d5"; } +.bi-cpu::before { content: "\f2d6"; } +.bi-credit-card-2-back-fill::before { content: "\f2d7"; } +.bi-credit-card-2-back::before { content: "\f2d8"; } +.bi-credit-card-2-front-fill::before { content: "\f2d9"; } +.bi-credit-card-2-front::before { content: "\f2da"; } +.bi-credit-card-fill::before { content: "\f2db"; } +.bi-credit-card::before { content: "\f2dc"; } +.bi-crop::before { content: "\f2dd"; } +.bi-cup-fill::before { content: "\f2de"; } +.bi-cup-straw::before { content: "\f2df"; } +.bi-cup::before { content: "\f2e0"; } +.bi-cursor-fill::before { content: "\f2e1"; } +.bi-cursor-text::before { content: "\f2e2"; } +.bi-cursor::before { content: "\f2e3"; } +.bi-dash-circle-dotted::before { content: "\f2e4"; } +.bi-dash-circle-fill::before { content: "\f2e5"; } +.bi-dash-circle::before { content: "\f2e6"; } +.bi-dash-square-dotted::before { content: "\f2e7"; } +.bi-dash-square-fill::before { content: "\f2e8"; } +.bi-dash-square::before { content: "\f2e9"; } +.bi-dash::before { content: "\f2ea"; } +.bi-diagram-2-fill::before { content: "\f2eb"; } +.bi-diagram-2::before { content: "\f2ec"; } +.bi-diagram-3-fill::before { content: "\f2ed"; } +.bi-diagram-3::before { content: "\f2ee"; } +.bi-diamond-fill::before { content: "\f2ef"; } +.bi-diamond-half::before { content: "\f2f0"; } +.bi-diamond::before { content: "\f2f1"; } +.bi-dice-1-fill::before { content: "\f2f2"; } +.bi-dice-1::before { content: "\f2f3"; } +.bi-dice-2-fill::before { content: "\f2f4"; } +.bi-dice-2::before { content: "\f2f5"; } +.bi-dice-3-fill::before { content: "\f2f6"; } +.bi-dice-3::before { content: "\f2f7"; } +.bi-dice-4-fill::before { content: "\f2f8"; } +.bi-dice-4::before { content: "\f2f9"; } +.bi-dice-5-fill::before { content: "\f2fa"; } +.bi-dice-5::before { content: "\f2fb"; } +.bi-dice-6-fill::before { content: "\f2fc"; } +.bi-dice-6::before { content: "\f2fd"; } +.bi-disc-fill::before { content: "\f2fe"; } +.bi-disc::before { content: "\f2ff"; } +.bi-discord::before { content: "\f300"; } +.bi-display-fill::before { content: "\f301"; } +.bi-display::before { content: "\f302"; } +.bi-distribute-horizontal::before { content: "\f303"; } +.bi-distribute-vertical::before { content: "\f304"; } +.bi-door-closed-fill::before { content: "\f305"; } +.bi-door-closed::before { content: "\f306"; } +.bi-door-open-fill::before { content: "\f307"; } +.bi-door-open::before { content: "\f308"; } +.bi-dot::before { content: "\f309"; } +.bi-download::before { content: "\f30a"; } +.bi-droplet-fill::before { content: "\f30b"; } +.bi-droplet-half::before { content: "\f30c"; } +.bi-droplet::before { content: "\f30d"; } +.bi-earbuds::before { content: "\f30e"; } +.bi-easel-fill::before { content: "\f30f"; } +.bi-easel::before { content: "\f310"; } +.bi-egg-fill::before { content: "\f311"; } +.bi-egg-fried::before { content: "\f312"; } +.bi-egg::before { content: "\f313"; } +.bi-eject-fill::before { content: "\f314"; } +.bi-eject::before { content: "\f315"; } +.bi-emoji-angry-fill::before { content: "\f316"; } +.bi-emoji-angry::before { content: "\f317"; } +.bi-emoji-dizzy-fill::before { content: "\f318"; } +.bi-emoji-dizzy::before { content: "\f319"; } +.bi-emoji-expressionless-fill::before { content: "\f31a"; } +.bi-emoji-expressionless::before { content: "\f31b"; } +.bi-emoji-frown-fill::before { content: "\f31c"; } +.bi-emoji-frown::before { content: "\f31d"; } +.bi-emoji-heart-eyes-fill::before { content: "\f31e"; } +.bi-emoji-heart-eyes::before { content: "\f31f"; } +.bi-emoji-laughing-fill::before { content: "\f320"; } +.bi-emoji-laughing::before { content: "\f321"; } +.bi-emoji-neutral-fill::before { content: "\f322"; } +.bi-emoji-neutral::before { content: "\f323"; } +.bi-emoji-smile-fill::before { content: "\f324"; } +.bi-emoji-smile-upside-down-fill::before { content: "\f325"; } +.bi-emoji-smile-upside-down::before { content: "\f326"; } +.bi-emoji-smile::before { content: "\f327"; } +.bi-emoji-sunglasses-fill::before { content: "\f328"; } +.bi-emoji-sunglasses::before { content: "\f329"; } +.bi-emoji-wink-fill::before { content: "\f32a"; } +.bi-emoji-wink::before { content: "\f32b"; } +.bi-envelope-fill::before { content: "\f32c"; } +.bi-envelope-open-fill::before { content: "\f32d"; } +.bi-envelope-open::before { content: "\f32e"; } +.bi-envelope::before { content: "\f32f"; } +.bi-eraser-fill::before { content: "\f330"; } +.bi-eraser::before { content: "\f331"; } +.bi-exclamation-circle-fill::before { content: "\f332"; } +.bi-exclamation-circle::before { content: "\f333"; } +.bi-exclamation-diamond-fill::before { content: "\f334"; } +.bi-exclamation-diamond::before { content: "\f335"; } +.bi-exclamation-octagon-fill::before { content: "\f336"; } +.bi-exclamation-octagon::before { content: "\f337"; } +.bi-exclamation-square-fill::before { content: "\f338"; } +.bi-exclamation-square::before { content: "\f339"; } +.bi-exclamation-triangle-fill::before { content: "\f33a"; } +.bi-exclamation-triangle::before { content: "\f33b"; } +.bi-exclamation::before { content: "\f33c"; } +.bi-exclude::before { content: "\f33d"; } +.bi-eye-fill::before { content: "\f33e"; } +.bi-eye-slash-fill::before { content: "\f33f"; } +.bi-eye-slash::before { content: "\f340"; } +.bi-eye::before { content: "\f341"; } +.bi-eyedropper::before { content: "\f342"; } +.bi-eyeglasses::before { content: "\f343"; } +.bi-facebook::before { content: "\f344"; } +.bi-file-arrow-down-fill::before { content: "\f345"; } +.bi-file-arrow-down::before { content: "\f346"; } +.bi-file-arrow-up-fill::before { content: "\f347"; } +.bi-file-arrow-up::before { content: "\f348"; } +.bi-file-bar-graph-fill::before { content: "\f349"; } +.bi-file-bar-graph::before { content: "\f34a"; } +.bi-file-binary-fill::before { content: "\f34b"; } +.bi-file-binary::before { content: "\f34c"; } +.bi-file-break-fill::before { content: "\f34d"; } +.bi-file-break::before { content: "\f34e"; } +.bi-file-check-fill::before { content: "\f34f"; } +.bi-file-check::before { content: "\f350"; } +.bi-file-code-fill::before { content: "\f351"; } +.bi-file-code::before { content: "\f352"; } +.bi-file-diff-fill::before { content: "\f353"; } +.bi-file-diff::before { content: "\f354"; } +.bi-file-earmark-arrow-down-fill::before { content: "\f355"; } +.bi-file-earmark-arrow-down::before { content: "\f356"; } +.bi-file-earmark-arrow-up-fill::before { content: "\f357"; } +.bi-file-earmark-arrow-up::before { content: "\f358"; } +.bi-file-earmark-bar-graph-fill::before { content: "\f359"; } +.bi-file-earmark-bar-graph::before { content: "\f35a"; } +.bi-file-earmark-binary-fill::before { content: "\f35b"; } +.bi-file-earmark-binary::before { content: "\f35c"; } +.bi-file-earmark-break-fill::before { content: "\f35d"; } +.bi-file-earmark-break::before { content: "\f35e"; } +.bi-file-earmark-check-fill::before { content: "\f35f"; } +.bi-file-earmark-check::before { content: "\f360"; } +.bi-file-earmark-code-fill::before { content: "\f361"; } +.bi-file-earmark-code::before { content: "\f362"; } +.bi-file-earmark-diff-fill::before { content: "\f363"; } +.bi-file-earmark-diff::before { content: "\f364"; } +.bi-file-earmark-easel-fill::before { content: "\f365"; } +.bi-file-earmark-easel::before { content: "\f366"; } +.bi-file-earmark-excel-fill::before { content: "\f367"; } +.bi-file-earmark-excel::before { content: "\f368"; } +.bi-file-earmark-fill::before { content: "\f369"; } +.bi-file-earmark-font-fill::before { content: "\f36a"; } +.bi-file-earmark-font::before { content: "\f36b"; } +.bi-file-earmark-image-fill::before { content: "\f36c"; } +.bi-file-earmark-image::before { content: "\f36d"; } +.bi-file-earmark-lock-fill::before { content: "\f36e"; } +.bi-file-earmark-lock::before { content: "\f36f"; } +.bi-file-earmark-lock2-fill::before { content: "\f370"; } +.bi-file-earmark-lock2::before { content: "\f371"; } +.bi-file-earmark-medical-fill::before { content: "\f372"; } +.bi-file-earmark-medical::before { content: "\f373"; } +.bi-file-earmark-minus-fill::before { content: "\f374"; } +.bi-file-earmark-minus::before { content: "\f375"; } +.bi-file-earmark-music-fill::before { content: "\f376"; } +.bi-file-earmark-music::before { content: "\f377"; } +.bi-file-earmark-person-fill::before { content: "\f378"; } +.bi-file-earmark-person::before { content: "\f379"; } +.bi-file-earmark-play-fill::before { content: "\f37a"; } +.bi-file-earmark-play::before { content: "\f37b"; } +.bi-file-earmark-plus-fill::before { content: "\f37c"; } +.bi-file-earmark-plus::before { content: "\f37d"; } +.bi-file-earmark-post-fill::before { content: "\f37e"; } +.bi-file-earmark-post::before { content: "\f37f"; } +.bi-file-earmark-ppt-fill::before { content: "\f380"; } +.bi-file-earmark-ppt::before { content: "\f381"; } +.bi-file-earmark-richtext-fill::before { content: "\f382"; } +.bi-file-earmark-richtext::before { content: "\f383"; } +.bi-file-earmark-ruled-fill::before { content: "\f384"; } +.bi-file-earmark-ruled::before { content: "\f385"; } +.bi-file-earmark-slides-fill::before { content: "\f386"; } +.bi-file-earmark-slides::before { content: "\f387"; } +.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; } +.bi-file-earmark-spreadsheet::before { content: "\f389"; } +.bi-file-earmark-text-fill::before { content: "\f38a"; } +.bi-file-earmark-text::before { content: "\f38b"; } +.bi-file-earmark-word-fill::before { content: "\f38c"; } +.bi-file-earmark-word::before { content: "\f38d"; } +.bi-file-earmark-x-fill::before { content: "\f38e"; } +.bi-file-earmark-x::before { content: "\f38f"; } +.bi-file-earmark-zip-fill::before { content: "\f390"; } +.bi-file-earmark-zip::before { content: "\f391"; } +.bi-file-earmark::before { content: "\f392"; } +.bi-file-easel-fill::before { content: "\f393"; } +.bi-file-easel::before { content: "\f394"; } +.bi-file-excel-fill::before { content: "\f395"; } +.bi-file-excel::before { content: "\f396"; } +.bi-file-fill::before { content: "\f397"; } +.bi-file-font-fill::before { content: "\f398"; } +.bi-file-font::before { content: "\f399"; } +.bi-file-image-fill::before { content: "\f39a"; } +.bi-file-image::before { content: "\f39b"; } +.bi-file-lock-fill::before { content: "\f39c"; } +.bi-file-lock::before { content: "\f39d"; } +.bi-file-lock2-fill::before { content: "\f39e"; } +.bi-file-lock2::before { content: "\f39f"; } +.bi-file-medical-fill::before { content: "\f3a0"; } +.bi-file-medical::before { content: "\f3a1"; } +.bi-file-minus-fill::before { content: "\f3a2"; } +.bi-file-minus::before { content: "\f3a3"; } +.bi-file-music-fill::before { content: "\f3a4"; } +.bi-file-music::before { content: "\f3a5"; } +.bi-file-person-fill::before { content: "\f3a6"; } +.bi-file-person::before { content: "\f3a7"; } +.bi-file-play-fill::before { content: "\f3a8"; } +.bi-file-play::before { content: "\f3a9"; } +.bi-file-plus-fill::before { content: "\f3aa"; } +.bi-file-plus::before { content: "\f3ab"; } +.bi-file-post-fill::before { content: "\f3ac"; } +.bi-file-post::before { content: "\f3ad"; } +.bi-file-ppt-fill::before { content: "\f3ae"; } +.bi-file-ppt::before { content: "\f3af"; } +.bi-file-richtext-fill::before { content: "\f3b0"; } +.bi-file-richtext::before { content: "\f3b1"; } +.bi-file-ruled-fill::before { content: "\f3b2"; } +.bi-file-ruled::before { content: "\f3b3"; } +.bi-file-slides-fill::before { content: "\f3b4"; } +.bi-file-slides::before { content: "\f3b5"; } +.bi-file-spreadsheet-fill::before { content: "\f3b6"; } +.bi-file-spreadsheet::before { content: "\f3b7"; } +.bi-file-text-fill::before { content: "\f3b8"; } +.bi-file-text::before { content: "\f3b9"; } +.bi-file-word-fill::before { content: "\f3ba"; } +.bi-file-word::before { content: "\f3bb"; } +.bi-file-x-fill::before { content: "\f3bc"; } +.bi-file-x::before { content: "\f3bd"; } +.bi-file-zip-fill::before { content: "\f3be"; } +.bi-file-zip::before { content: "\f3bf"; } +.bi-file::before { content: "\f3c0"; } +.bi-files-alt::before { content: "\f3c1"; } +.bi-files::before { content: "\f3c2"; } +.bi-film::before { content: "\f3c3"; } +.bi-filter-circle-fill::before { content: "\f3c4"; } +.bi-filter-circle::before { content: "\f3c5"; } +.bi-filter-left::before { content: "\f3c6"; } +.bi-filter-right::before { content: "\f3c7"; } +.bi-filter-square-fill::before { content: "\f3c8"; } +.bi-filter-square::before { content: "\f3c9"; } +.bi-filter::before { content: "\f3ca"; } +.bi-flag-fill::before { content: "\f3cb"; } +.bi-flag::before { content: "\f3cc"; } +.bi-flower1::before { content: "\f3cd"; } +.bi-flower2::before { content: "\f3ce"; } +.bi-flower3::before { content: "\f3cf"; } +.bi-folder-check::before { content: "\f3d0"; } +.bi-folder-fill::before { content: "\f3d1"; } +.bi-folder-minus::before { content: "\f3d2"; } +.bi-folder-plus::before { content: "\f3d3"; } +.bi-folder-symlink-fill::before { content: "\f3d4"; } +.bi-folder-symlink::before { content: "\f3d5"; } +.bi-folder-x::before { content: "\f3d6"; } +.bi-folder::before { content: "\f3d7"; } +.bi-folder2-open::before { content: "\f3d8"; } +.bi-folder2::before { content: "\f3d9"; } +.bi-fonts::before { content: "\f3da"; } +.bi-forward-fill::before { content: "\f3db"; } +.bi-forward::before { content: "\f3dc"; } +.bi-front::before { content: "\f3dd"; } +.bi-fullscreen-exit::before { content: "\f3de"; } +.bi-fullscreen::before { content: "\f3df"; } +.bi-funnel-fill::before { content: "\f3e0"; } +.bi-funnel::before { content: "\f3e1"; } +.bi-gear-fill::before { content: "\f3e2"; } +.bi-gear-wide-connected::before { content: "\f3e3"; } +.bi-gear-wide::before { content: "\f3e4"; } +.bi-gear::before { content: "\f3e5"; } +.bi-gem::before { content: "\f3e6"; } +.bi-geo-alt-fill::before { content: "\f3e7"; } +.bi-geo-alt::before { content: "\f3e8"; } +.bi-geo-fill::before { content: "\f3e9"; } +.bi-geo::before { content: "\f3ea"; } +.bi-gift-fill::before { content: "\f3eb"; } +.bi-gift::before { content: "\f3ec"; } +.bi-github::before { content: "\f3ed"; } +.bi-globe::before { content: "\f3ee"; } +.bi-globe2::before { content: "\f3ef"; } +.bi-google::before { content: "\f3f0"; } +.bi-graph-down::before { content: "\f3f1"; } +.bi-graph-up::before { content: "\f3f2"; } +.bi-grid-1x2-fill::before { content: "\f3f3"; } +.bi-grid-1x2::before { content: "\f3f4"; } +.bi-grid-3x2-gap-fill::before { content: "\f3f5"; } +.bi-grid-3x2-gap::before { content: "\f3f6"; } +.bi-grid-3x2::before { content: "\f3f7"; } +.bi-grid-3x3-gap-fill::before { content: "\f3f8"; } +.bi-grid-3x3-gap::before { content: "\f3f9"; } +.bi-grid-3x3::before { content: "\f3fa"; } +.bi-grid-fill::before { content: "\f3fb"; } +.bi-grid::before { content: "\f3fc"; } +.bi-grip-horizontal::before { content: "\f3fd"; } +.bi-grip-vertical::before { content: "\f3fe"; } +.bi-hammer::before { content: "\f3ff"; } +.bi-hand-index-fill::before { content: "\f400"; } +.bi-hand-index-thumb-fill::before { content: "\f401"; } +.bi-hand-index-thumb::before { content: "\f402"; } +.bi-hand-index::before { content: "\f403"; } +.bi-hand-thumbs-down-fill::before { content: "\f404"; } +.bi-hand-thumbs-down::before { content: "\f405"; } +.bi-hand-thumbs-up-fill::before { content: "\f406"; } +.bi-hand-thumbs-up::before { content: "\f407"; } +.bi-handbag-fill::before { content: "\f408"; } +.bi-handbag::before { content: "\f409"; } +.bi-hash::before { content: "\f40a"; } +.bi-hdd-fill::before { content: "\f40b"; } +.bi-hdd-network-fill::before { content: "\f40c"; } +.bi-hdd-network::before { content: "\f40d"; } +.bi-hdd-rack-fill::before { content: "\f40e"; } +.bi-hdd-rack::before { content: "\f40f"; } +.bi-hdd-stack-fill::before { content: "\f410"; } +.bi-hdd-stack::before { content: "\f411"; } +.bi-hdd::before { content: "\f412"; } +.bi-headphones::before { content: "\f413"; } +.bi-headset::before { content: "\f414"; } +.bi-heart-fill::before { content: "\f415"; } +.bi-heart-half::before { content: "\f416"; } +.bi-heart::before { content: "\f417"; } +.bi-heptagon-fill::before { content: "\f418"; } +.bi-heptagon-half::before { content: "\f419"; } +.bi-heptagon::before { content: "\f41a"; } +.bi-hexagon-fill::before { content: "\f41b"; } +.bi-hexagon-half::before { content: "\f41c"; } +.bi-hexagon::before { content: "\f41d"; } +.bi-hourglass-bottom::before { content: "\f41e"; } +.bi-hourglass-split::before { content: "\f41f"; } +.bi-hourglass-top::before { content: "\f420"; } +.bi-hourglass::before { content: "\f421"; } +.bi-house-door-fill::before { content: "\f422"; } +.bi-house-door::before { content: "\f423"; } +.bi-house-fill::before { content: "\f424"; } +.bi-house::before { content: "\f425"; } +.bi-hr::before { content: "\f426"; } +.bi-hurricane::before { content: "\f427"; } +.bi-image-alt::before { content: "\f428"; } +.bi-image-fill::before { content: "\f429"; } +.bi-image::before { content: "\f42a"; } +.bi-images::before { content: "\f42b"; } +.bi-inbox-fill::before { content: "\f42c"; } +.bi-inbox::before { content: "\f42d"; } +.bi-inboxes-fill::before { content: "\f42e"; } +.bi-inboxes::before { content: "\f42f"; } +.bi-info-circle-fill::before { content: "\f430"; } +.bi-info-circle::before { content: "\f431"; } +.bi-info-square-fill::before { content: "\f432"; } +.bi-info-square::before { content: "\f433"; } +.bi-info::before { content: "\f434"; } +.bi-input-cursor-text::before { content: "\f435"; } +.bi-input-cursor::before { content: "\f436"; } +.bi-instagram::before { content: "\f437"; } +.bi-intersect::before { content: "\f438"; } +.bi-journal-album::before { content: "\f439"; } +.bi-journal-arrow-down::before { content: "\f43a"; } +.bi-journal-arrow-up::before { content: "\f43b"; } +.bi-journal-bookmark-fill::before { content: "\f43c"; } +.bi-journal-bookmark::before { content: "\f43d"; } +.bi-journal-check::before { content: "\f43e"; } +.bi-journal-code::before { content: "\f43f"; } +.bi-journal-medical::before { content: "\f440"; } +.bi-journal-minus::before { content: "\f441"; } +.bi-journal-plus::before { content: "\f442"; } +.bi-journal-richtext::before { content: "\f443"; } +.bi-journal-text::before { content: "\f444"; } +.bi-journal-x::before { content: "\f445"; } +.bi-journal::before { content: "\f446"; } +.bi-journals::before { content: "\f447"; } +.bi-joystick::before { content: "\f448"; } +.bi-justify-left::before { content: "\f449"; } +.bi-justify-right::before { content: "\f44a"; } +.bi-justify::before { content: "\f44b"; } +.bi-kanban-fill::before { content: "\f44c"; } +.bi-kanban::before { content: "\f44d"; } +.bi-key-fill::before { content: "\f44e"; } +.bi-key::before { content: "\f44f"; } +.bi-keyboard-fill::before { content: "\f450"; } +.bi-keyboard::before { content: "\f451"; } +.bi-ladder::before { content: "\f452"; } +.bi-lamp-fill::before { content: "\f453"; } +.bi-lamp::before { content: "\f454"; } +.bi-laptop-fill::before { content: "\f455"; } +.bi-laptop::before { content: "\f456"; } +.bi-layer-backward::before { content: "\f457"; } +.bi-layer-forward::before { content: "\f458"; } +.bi-layers-fill::before { content: "\f459"; } +.bi-layers-half::before { content: "\f45a"; } +.bi-layers::before { content: "\f45b"; } +.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; } +.bi-layout-sidebar-inset::before { content: "\f45d"; } +.bi-layout-sidebar-reverse::before { content: "\f45e"; } +.bi-layout-sidebar::before { content: "\f45f"; } +.bi-layout-split::before { content: "\f460"; } +.bi-layout-text-sidebar-reverse::before { content: "\f461"; } +.bi-layout-text-sidebar::before { content: "\f462"; } +.bi-layout-text-window-reverse::before { content: "\f463"; } +.bi-layout-text-window::before { content: "\f464"; } +.bi-layout-three-columns::before { content: "\f465"; } +.bi-layout-wtf::before { content: "\f466"; } +.bi-life-preserver::before { content: "\f467"; } +.bi-lightbulb-fill::before { content: "\f468"; } +.bi-lightbulb-off-fill::before { content: "\f469"; } +.bi-lightbulb-off::before { content: "\f46a"; } +.bi-lightbulb::before { content: "\f46b"; } +.bi-lightning-charge-fill::before { content: "\f46c"; } +.bi-lightning-charge::before { content: "\f46d"; } +.bi-lightning-fill::before { content: "\f46e"; } +.bi-lightning::before { content: "\f46f"; } +.bi-link-45deg::before { content: "\f470"; } +.bi-link::before { content: "\f471"; } +.bi-linkedin::before { content: "\f472"; } +.bi-list-check::before { content: "\f473"; } +.bi-list-nested::before { content: "\f474"; } +.bi-list-ol::before { content: "\f475"; } +.bi-list-stars::before { content: "\f476"; } +.bi-list-task::before { content: "\f477"; } +.bi-list-ul::before { content: "\f478"; } +.bi-list::before { content: "\f479"; } +.bi-lock-fill::before { content: "\f47a"; } +.bi-lock::before { content: "\f47b"; } +.bi-mailbox::before { content: "\f47c"; } +.bi-mailbox2::before { content: "\f47d"; } +.bi-map-fill::before { content: "\f47e"; } +.bi-map::before { content: "\f47f"; } +.bi-markdown-fill::before { content: "\f480"; } +.bi-markdown::before { content: "\f481"; } +.bi-mask::before { content: "\f482"; } +.bi-megaphone-fill::before { content: "\f483"; } +.bi-megaphone::before { content: "\f484"; } +.bi-menu-app-fill::before { content: "\f485"; } +.bi-menu-app::before { content: "\f486"; } +.bi-menu-button-fill::before { content: "\f487"; } +.bi-menu-button-wide-fill::before { content: "\f488"; } +.bi-menu-button-wide::before { content: "\f489"; } +.bi-menu-button::before { content: "\f48a"; } +.bi-menu-down::before { content: "\f48b"; } +.bi-menu-up::before { content: "\f48c"; } +.bi-mic-fill::before { content: "\f48d"; } +.bi-mic-mute-fill::before { content: "\f48e"; } +.bi-mic-mute::before { content: "\f48f"; } +.bi-mic::before { content: "\f490"; } +.bi-minecart-loaded::before { content: "\f491"; } +.bi-minecart::before { content: "\f492"; } +.bi-moisture::before { content: "\f493"; } +.bi-moon-fill::before { content: "\f494"; } +.bi-moon-stars-fill::before { content: "\f495"; } +.bi-moon-stars::before { content: "\f496"; } +.bi-moon::before { content: "\f497"; } +.bi-mouse-fill::before { content: "\f498"; } +.bi-mouse::before { content: "\f499"; } +.bi-mouse2-fill::before { content: "\f49a"; } +.bi-mouse2::before { content: "\f49b"; } +.bi-mouse3-fill::before { content: "\f49c"; } +.bi-mouse3::before { content: "\f49d"; } +.bi-music-note-beamed::before { content: "\f49e"; } +.bi-music-note-list::before { content: "\f49f"; } +.bi-music-note::before { content: "\f4a0"; } +.bi-music-player-fill::before { content: "\f4a1"; } +.bi-music-player::before { content: "\f4a2"; } +.bi-newspaper::before { content: "\f4a3"; } +.bi-node-minus-fill::before { content: "\f4a4"; } +.bi-node-minus::before { content: "\f4a5"; } +.bi-node-plus-fill::before { content: "\f4a6"; } +.bi-node-plus::before { content: "\f4a7"; } +.bi-nut-fill::before { content: "\f4a8"; } +.bi-nut::before { content: "\f4a9"; } +.bi-octagon-fill::before { content: "\f4aa"; } +.bi-octagon-half::before { content: "\f4ab"; } +.bi-octagon::before { content: "\f4ac"; } +.bi-option::before { content: "\f4ad"; } +.bi-outlet::before { content: "\f4ae"; } +.bi-paint-bucket::before { content: "\f4af"; } +.bi-palette-fill::before { content: "\f4b0"; } +.bi-palette::before { content: "\f4b1"; } +.bi-palette2::before { content: "\f4b2"; } +.bi-paperclip::before { content: "\f4b3"; } +.bi-paragraph::before { content: "\f4b4"; } +.bi-patch-check-fill::before { content: "\f4b5"; } +.bi-patch-check::before { content: "\f4b6"; } +.bi-patch-exclamation-fill::before { content: "\f4b7"; } +.bi-patch-exclamation::before { content: "\f4b8"; } +.bi-patch-minus-fill::before { content: "\f4b9"; } +.bi-patch-minus::before { content: "\f4ba"; } +.bi-patch-plus-fill::before { content: "\f4bb"; } +.bi-patch-plus::before { content: "\f4bc"; } +.bi-patch-question-fill::before { content: "\f4bd"; } +.bi-patch-question::before { content: "\f4be"; } +.bi-pause-btn-fill::before { content: "\f4bf"; } +.bi-pause-btn::before { content: "\f4c0"; } +.bi-pause-circle-fill::before { content: "\f4c1"; } +.bi-pause-circle::before { content: "\f4c2"; } +.bi-pause-fill::before { content: "\f4c3"; } +.bi-pause::before { content: "\f4c4"; } +.bi-peace-fill::before { content: "\f4c5"; } +.bi-peace::before { content: "\f4c6"; } +.bi-pen-fill::before { content: "\f4c7"; } +.bi-pen::before { content: "\f4c8"; } +.bi-pencil-fill::before { content: "\f4c9"; } +.bi-pencil-square::before { content: "\f4ca"; } +.bi-pencil::before { content: "\f4cb"; } +.bi-pentagon-fill::before { content: "\f4cc"; } +.bi-pentagon-half::before { content: "\f4cd"; } +.bi-pentagon::before { content: "\f4ce"; } +.bi-people-fill::before { content: "\f4cf"; } +.bi-people::before { content: "\f4d0"; } +.bi-percent::before { content: "\f4d1"; } +.bi-person-badge-fill::before { content: "\f4d2"; } +.bi-person-badge::before { content: "\f4d3"; } +.bi-person-bounding-box::before { content: "\f4d4"; } +.bi-person-check-fill::before { content: "\f4d5"; } +.bi-person-check::before { content: "\f4d6"; } +.bi-person-circle::before { content: "\f4d7"; } +.bi-person-dash-fill::before { content: "\f4d8"; } +.bi-person-dash::before { content: "\f4d9"; } +.bi-person-fill::before { content: "\f4da"; } +.bi-person-lines-fill::before { content: "\f4db"; } +.bi-person-plus-fill::before { content: "\f4dc"; } +.bi-person-plus::before { content: "\f4dd"; } +.bi-person-square::before { content: "\f4de"; } +.bi-person-x-fill::before { content: "\f4df"; } +.bi-person-x::before { content: "\f4e0"; } +.bi-person::before { content: "\f4e1"; } +.bi-phone-fill::before { content: "\f4e2"; } +.bi-phone-landscape-fill::before { content: "\f4e3"; } +.bi-phone-landscape::before { content: "\f4e4"; } +.bi-phone-vibrate-fill::before { content: "\f4e5"; } +.bi-phone-vibrate::before { content: "\f4e6"; } +.bi-phone::before { content: "\f4e7"; } +.bi-pie-chart-fill::before { content: "\f4e8"; } +.bi-pie-chart::before { content: "\f4e9"; } +.bi-pin-angle-fill::before { content: "\f4ea"; } +.bi-pin-angle::before { content: "\f4eb"; } +.bi-pin-fill::before { content: "\f4ec"; } +.bi-pin::before { content: "\f4ed"; } +.bi-pip-fill::before { content: "\f4ee"; } +.bi-pip::before { content: "\f4ef"; } +.bi-play-btn-fill::before { content: "\f4f0"; } +.bi-play-btn::before { content: "\f4f1"; } +.bi-play-circle-fill::before { content: "\f4f2"; } +.bi-play-circle::before { content: "\f4f3"; } +.bi-play-fill::before { content: "\f4f4"; } +.bi-play::before { content: "\f4f5"; } +.bi-plug-fill::before { content: "\f4f6"; } +.bi-plug::before { content: "\f4f7"; } +.bi-plus-circle-dotted::before { content: "\f4f8"; } +.bi-plus-circle-fill::before { content: "\f4f9"; } +.bi-plus-circle::before { content: "\f4fa"; } +.bi-plus-square-dotted::before { content: "\f4fb"; } +.bi-plus-square-fill::before { content: "\f4fc"; } +.bi-plus-square::before { content: "\f4fd"; } +.bi-plus::before { content: "\f4fe"; } +.bi-power::before { content: "\f4ff"; } +.bi-printer-fill::before { content: "\f500"; } +.bi-printer::before { content: "\f501"; } +.bi-puzzle-fill::before { content: "\f502"; } +.bi-puzzle::before { content: "\f503"; } +.bi-question-circle-fill::before { content: "\f504"; } +.bi-question-circle::before { content: "\f505"; } +.bi-question-diamond-fill::before { content: "\f506"; } +.bi-question-diamond::before { content: "\f507"; } +.bi-question-octagon-fill::before { content: "\f508"; } +.bi-question-octagon::before { content: "\f509"; } +.bi-question-square-fill::before { content: "\f50a"; } +.bi-question-square::before { content: "\f50b"; } +.bi-question::before { content: "\f50c"; } +.bi-rainbow::before { content: "\f50d"; } +.bi-receipt-cutoff::before { content: "\f50e"; } +.bi-receipt::before { content: "\f50f"; } +.bi-reception-0::before { content: "\f510"; } +.bi-reception-1::before { content: "\f511"; } +.bi-reception-2::before { content: "\f512"; } +.bi-reception-3::before { content: "\f513"; } +.bi-reception-4::before { content: "\f514"; } +.bi-record-btn-fill::before { content: "\f515"; } +.bi-record-btn::before { content: "\f516"; } +.bi-record-circle-fill::before { content: "\f517"; } +.bi-record-circle::before { content: "\f518"; } +.bi-record-fill::before { content: "\f519"; } +.bi-record::before { content: "\f51a"; } +.bi-record2-fill::before { content: "\f51b"; } +.bi-record2::before { content: "\f51c"; } +.bi-reply-all-fill::before { content: "\f51d"; } +.bi-reply-all::before { content: "\f51e"; } +.bi-reply-fill::before { content: "\f51f"; } +.bi-reply::before { content: "\f520"; } +.bi-rss-fill::before { content: "\f521"; } +.bi-rss::before { content: "\f522"; } +.bi-rulers::before { content: "\f523"; } +.bi-save-fill::before { content: "\f524"; } +.bi-save::before { content: "\f525"; } +.bi-save2-fill::before { content: "\f526"; } +.bi-save2::before { content: "\f527"; } +.bi-scissors::before { content: "\f528"; } +.bi-screwdriver::before { content: "\f529"; } +.bi-search::before { content: "\f52a"; } +.bi-segmented-nav::before { content: "\f52b"; } +.bi-server::before { content: "\f52c"; } +.bi-share-fill::before { content: "\f52d"; } +.bi-share::before { content: "\f52e"; } +.bi-shield-check::before { content: "\f52f"; } +.bi-shield-exclamation::before { content: "\f530"; } +.bi-shield-fill-check::before { content: "\f531"; } +.bi-shield-fill-exclamation::before { content: "\f532"; } +.bi-shield-fill-minus::before { content: "\f533"; } +.bi-shield-fill-plus::before { content: "\f534"; } +.bi-shield-fill-x::before { content: "\f535"; } +.bi-shield-fill::before { content: "\f536"; } +.bi-shield-lock-fill::before { content: "\f537"; } +.bi-shield-lock::before { content: "\f538"; } +.bi-shield-minus::before { content: "\f539"; } +.bi-shield-plus::before { content: "\f53a"; } +.bi-shield-shaded::before { content: "\f53b"; } +.bi-shield-slash-fill::before { content: "\f53c"; } +.bi-shield-slash::before { content: "\f53d"; } +.bi-shield-x::before { content: "\f53e"; } +.bi-shield::before { content: "\f53f"; } +.bi-shift-fill::before { content: "\f540"; } +.bi-shift::before { content: "\f541"; } +.bi-shop-window::before { content: "\f542"; } +.bi-shop::before { content: "\f543"; } +.bi-shuffle::before { content: "\f544"; } +.bi-signpost-2-fill::before { content: "\f545"; } +.bi-signpost-2::before { content: "\f546"; } +.bi-signpost-fill::before { content: "\f547"; } +.bi-signpost-split-fill::before { content: "\f548"; } +.bi-signpost-split::before { content: "\f549"; } +.bi-signpost::before { content: "\f54a"; } +.bi-sim-fill::before { content: "\f54b"; } +.bi-sim::before { content: "\f54c"; } +.bi-skip-backward-btn-fill::before { content: "\f54d"; } +.bi-skip-backward-btn::before { content: "\f54e"; } +.bi-skip-backward-circle-fill::before { content: "\f54f"; } +.bi-skip-backward-circle::before { content: "\f550"; } +.bi-skip-backward-fill::before { content: "\f551"; } +.bi-skip-backward::before { content: "\f552"; } +.bi-skip-end-btn-fill::before { content: "\f553"; } +.bi-skip-end-btn::before { content: "\f554"; } +.bi-skip-end-circle-fill::before { content: "\f555"; } +.bi-skip-end-circle::before { content: "\f556"; } +.bi-skip-end-fill::before { content: "\f557"; } +.bi-skip-end::before { content: "\f558"; } +.bi-skip-forward-btn-fill::before { content: "\f559"; } +.bi-skip-forward-btn::before { content: "\f55a"; } +.bi-skip-forward-circle-fill::before { content: "\f55b"; } +.bi-skip-forward-circle::before { content: "\f55c"; } +.bi-skip-forward-fill::before { content: "\f55d"; } +.bi-skip-forward::before { content: "\f55e"; } +.bi-skip-start-btn-fill::before { content: "\f55f"; } +.bi-skip-start-btn::before { content: "\f560"; } +.bi-skip-start-circle-fill::before { content: "\f561"; } +.bi-skip-start-circle::before { content: "\f562"; } +.bi-skip-start-fill::before { content: "\f563"; } +.bi-skip-start::before { content: "\f564"; } +.bi-slack::before { content: "\f565"; } +.bi-slash-circle-fill::before { content: "\f566"; } +.bi-slash-circle::before { content: "\f567"; } +.bi-slash-square-fill::before { content: "\f568"; } +.bi-slash-square::before { content: "\f569"; } +.bi-slash::before { content: "\f56a"; } +.bi-sliders::before { content: "\f56b"; } +.bi-smartwatch::before { content: "\f56c"; } +.bi-snow::before { content: "\f56d"; } +.bi-snow2::before { content: "\f56e"; } +.bi-snow3::before { content: "\f56f"; } +.bi-sort-alpha-down-alt::before { content: "\f570"; } +.bi-sort-alpha-down::before { content: "\f571"; } +.bi-sort-alpha-up-alt::before { content: "\f572"; } +.bi-sort-alpha-up::before { content: "\f573"; } +.bi-sort-down-alt::before { content: "\f574"; } +.bi-sort-down::before { content: "\f575"; } +.bi-sort-numeric-down-alt::before { content: "\f576"; } +.bi-sort-numeric-down::before { content: "\f577"; } +.bi-sort-numeric-up-alt::before { content: "\f578"; } +.bi-sort-numeric-up::before { content: "\f579"; } +.bi-sort-up-alt::before { content: "\f57a"; } +.bi-sort-up::before { content: "\f57b"; } +.bi-soundwave::before { content: "\f57c"; } +.bi-speaker-fill::before { content: "\f57d"; } +.bi-speaker::before { content: "\f57e"; } +.bi-speedometer::before { content: "\f57f"; } +.bi-speedometer2::before { content: "\f580"; } +.bi-spellcheck::before { content: "\f581"; } +.bi-square-fill::before { content: "\f582"; } +.bi-square-half::before { content: "\f583"; } +.bi-square::before { content: "\f584"; } +.bi-stack::before { content: "\f585"; } +.bi-star-fill::before { content: "\f586"; } +.bi-star-half::before { content: "\f587"; } +.bi-star::before { content: "\f588"; } +.bi-stars::before { content: "\f589"; } +.bi-stickies-fill::before { content: "\f58a"; } +.bi-stickies::before { content: "\f58b"; } +.bi-sticky-fill::before { content: "\f58c"; } +.bi-sticky::before { content: "\f58d"; } +.bi-stop-btn-fill::before { content: "\f58e"; } +.bi-stop-btn::before { content: "\f58f"; } +.bi-stop-circle-fill::before { content: "\f590"; } +.bi-stop-circle::before { content: "\f591"; } +.bi-stop-fill::before { content: "\f592"; } +.bi-stop::before { content: "\f593"; } +.bi-stoplights-fill::before { content: "\f594"; } +.bi-stoplights::before { content: "\f595"; } +.bi-stopwatch-fill::before { content: "\f596"; } +.bi-stopwatch::before { content: "\f597"; } +.bi-subtract::before { content: "\f598"; } +.bi-suit-club-fill::before { content: "\f599"; } +.bi-suit-club::before { content: "\f59a"; } +.bi-suit-diamond-fill::before { content: "\f59b"; } +.bi-suit-diamond::before { content: "\f59c"; } +.bi-suit-heart-fill::before { content: "\f59d"; } +.bi-suit-heart::before { content: "\f59e"; } +.bi-suit-spade-fill::before { content: "\f59f"; } +.bi-suit-spade::before { content: "\f5a0"; } +.bi-sun-fill::before { content: "\f5a1"; } +.bi-sun::before { content: "\f5a2"; } +.bi-sunglasses::before { content: "\f5a3"; } +.bi-sunrise-fill::before { content: "\f5a4"; } +.bi-sunrise::before { content: "\f5a5"; } +.bi-sunset-fill::before { content: "\f5a6"; } +.bi-sunset::before { content: "\f5a7"; } +.bi-symmetry-horizontal::before { content: "\f5a8"; } +.bi-symmetry-vertical::before { content: "\f5a9"; } +.bi-table::before { content: "\f5aa"; } +.bi-tablet-fill::before { content: "\f5ab"; } +.bi-tablet-landscape-fill::before { content: "\f5ac"; } +.bi-tablet-landscape::before { content: "\f5ad"; } +.bi-tablet::before { content: "\f5ae"; } +.bi-tag-fill::before { content: "\f5af"; } +.bi-tag::before { content: "\f5b0"; } +.bi-tags-fill::before { content: "\f5b1"; } +.bi-tags::before { content: "\f5b2"; } +.bi-telegram::before { content: "\f5b3"; } +.bi-telephone-fill::before { content: "\f5b4"; } +.bi-telephone-forward-fill::before { content: "\f5b5"; } +.bi-telephone-forward::before { content: "\f5b6"; } +.bi-telephone-inbound-fill::before { content: "\f5b7"; } +.bi-telephone-inbound::before { content: "\f5b8"; } +.bi-telephone-minus-fill::before { content: "\f5b9"; } +.bi-telephone-minus::before { content: "\f5ba"; } +.bi-telephone-outbound-fill::before { content: "\f5bb"; } +.bi-telephone-outbound::before { content: "\f5bc"; } +.bi-telephone-plus-fill::before { content: "\f5bd"; } +.bi-telephone-plus::before { content: "\f5be"; } +.bi-telephone-x-fill::before { content: "\f5bf"; } +.bi-telephone-x::before { content: "\f5c0"; } +.bi-telephone::before { content: "\f5c1"; } +.bi-terminal-fill::before { content: "\f5c2"; } +.bi-terminal::before { content: "\f5c3"; } +.bi-text-center::before { content: "\f5c4"; } +.bi-text-indent-left::before { content: "\f5c5"; } +.bi-text-indent-right::before { content: "\f5c6"; } +.bi-text-left::before { content: "\f5c7"; } +.bi-text-paragraph::before { content: "\f5c8"; } +.bi-text-right::before { content: "\f5c9"; } +.bi-textarea-resize::before { content: "\f5ca"; } +.bi-textarea-t::before { content: "\f5cb"; } +.bi-textarea::before { content: "\f5cc"; } +.bi-thermometer-half::before { content: "\f5cd"; } +.bi-thermometer-high::before { content: "\f5ce"; } +.bi-thermometer-low::before { content: "\f5cf"; } +.bi-thermometer-snow::before { content: "\f5d0"; } +.bi-thermometer-sun::before { content: "\f5d1"; } +.bi-thermometer::before { content: "\f5d2"; } +.bi-three-dots-vertical::before { content: "\f5d3"; } +.bi-three-dots::before { content: "\f5d4"; } +.bi-toggle-off::before { content: "\f5d5"; } +.bi-toggle-on::before { content: "\f5d6"; } +.bi-toggle2-off::before { content: "\f5d7"; } +.bi-toggle2-on::before { content: "\f5d8"; } +.bi-toggles::before { content: "\f5d9"; } +.bi-toggles2::before { content: "\f5da"; } +.bi-tools::before { content: "\f5db"; } +.bi-tornado::before { content: "\f5dc"; } +.bi-trash-fill::before { content: "\f5dd"; } +.bi-trash::before { content: "\f5de"; } +.bi-trash2-fill::before { content: "\f5df"; } +.bi-trash2::before { content: "\f5e0"; } +.bi-tree-fill::before { content: "\f5e1"; } +.bi-tree::before { content: "\f5e2"; } +.bi-triangle-fill::before { content: "\f5e3"; } +.bi-triangle-half::before { content: "\f5e4"; } +.bi-triangle::before { content: "\f5e5"; } +.bi-trophy-fill::before { content: "\f5e6"; } +.bi-trophy::before { content: "\f5e7"; } +.bi-tropical-storm::before { content: "\f5e8"; } +.bi-truck-flatbed::before { content: "\f5e9"; } +.bi-truck::before { content: "\f5ea"; } +.bi-tsunami::before { content: "\f5eb"; } +.bi-tv-fill::before { content: "\f5ec"; } +.bi-tv::before { content: "\f5ed"; } +.bi-twitch::before { content: "\f5ee"; } +.bi-twitter::before { content: "\f5ef"; } +.bi-type-bold::before { content: "\f5f0"; } +.bi-type-h1::before { content: "\f5f1"; } +.bi-type-h2::before { content: "\f5f2"; } +.bi-type-h3::before { content: "\f5f3"; } +.bi-type-italic::before { content: "\f5f4"; } +.bi-type-strikethrough::before { content: "\f5f5"; } +.bi-type-underline::before { content: "\f5f6"; } +.bi-type::before { content: "\f5f7"; } +.bi-ui-checks-grid::before { content: "\f5f8"; } +.bi-ui-checks::before { content: "\f5f9"; } +.bi-ui-radios-grid::before { content: "\f5fa"; } +.bi-ui-radios::before { content: "\f5fb"; } +.bi-umbrella-fill::before { content: "\f5fc"; } +.bi-umbrella::before { content: "\f5fd"; } +.bi-union::before { content: "\f5fe"; } +.bi-unlock-fill::before { content: "\f5ff"; } +.bi-unlock::before { content: "\f600"; } +.bi-upc-scan::before { content: "\f601"; } +.bi-upc::before { content: "\f602"; } +.bi-upload::before { content: "\f603"; } +.bi-vector-pen::before { content: "\f604"; } +.bi-view-list::before { content: "\f605"; } +.bi-view-stacked::before { content: "\f606"; } +.bi-vinyl-fill::before { content: "\f607"; } +.bi-vinyl::before { content: "\f608"; } +.bi-voicemail::before { content: "\f609"; } +.bi-volume-down-fill::before { content: "\f60a"; } +.bi-volume-down::before { content: "\f60b"; } +.bi-volume-mute-fill::before { content: "\f60c"; } +.bi-volume-mute::before { content: "\f60d"; } +.bi-volume-off-fill::before { content: "\f60e"; } +.bi-volume-off::before { content: "\f60f"; } +.bi-volume-up-fill::before { content: "\f610"; } +.bi-volume-up::before { content: "\f611"; } +.bi-vr::before { content: "\f612"; } +.bi-wallet-fill::before { content: "\f613"; } +.bi-wallet::before { content: "\f614"; } +.bi-wallet2::before { content: "\f615"; } +.bi-watch::before { content: "\f616"; } +.bi-water::before { content: "\f617"; } +.bi-whatsapp::before { content: "\f618"; } +.bi-wifi-1::before { content: "\f619"; } +.bi-wifi-2::before { content: "\f61a"; } +.bi-wifi-off::before { content: "\f61b"; } +.bi-wifi::before { content: "\f61c"; } +.bi-wind::before { content: "\f61d"; } +.bi-window-dock::before { content: "\f61e"; } +.bi-window-sidebar::before { content: "\f61f"; } +.bi-window::before { content: "\f620"; } +.bi-wrench::before { content: "\f621"; } +.bi-x-circle-fill::before { content: "\f622"; } +.bi-x-circle::before { content: "\f623"; } +.bi-x-diamond-fill::before { content: "\f624"; } +.bi-x-diamond::before { content: "\f625"; } +.bi-x-octagon-fill::before { content: "\f626"; } +.bi-x-octagon::before { content: "\f627"; } +.bi-x-square-fill::before { content: "\f628"; } +.bi-x-square::before { content: "\f629"; } +.bi-x::before { content: "\f62a"; } +.bi-youtube::before { content: "\f62b"; } +.bi-zoom-in::before { content: "\f62c"; } +.bi-zoom-out::before { content: "\f62d"; } +.bi-bank::before { content: "\f62e"; } +.bi-bank2::before { content: "\f62f"; } +.bi-bell-slash-fill::before { content: "\f630"; } +.bi-bell-slash::before { content: "\f631"; } +.bi-cash-coin::before { content: "\f632"; } +.bi-check-lg::before { content: "\f633"; } +.bi-coin::before { content: "\f634"; } +.bi-currency-bitcoin::before { content: "\f635"; } +.bi-currency-dollar::before { content: "\f636"; } +.bi-currency-euro::before { content: "\f637"; } +.bi-currency-exchange::before { content: "\f638"; } +.bi-currency-pound::before { content: "\f639"; } +.bi-currency-yen::before { content: "\f63a"; } +.bi-dash-lg::before { content: "\f63b"; } +.bi-exclamation-lg::before { content: "\f63c"; } +.bi-file-earmark-pdf-fill::before { content: "\f63d"; } +.bi-file-earmark-pdf::before { content: "\f63e"; } +.bi-file-pdf-fill::before { content: "\f63f"; } +.bi-file-pdf::before { content: "\f640"; } +.bi-gender-ambiguous::before { content: "\f641"; } +.bi-gender-female::before { content: "\f642"; } +.bi-gender-male::before { content: "\f643"; } +.bi-gender-trans::before { content: "\f644"; } +.bi-headset-vr::before { content: "\f645"; } +.bi-info-lg::before { content: "\f646"; } +.bi-mastodon::before { content: "\f647"; } +.bi-messenger::before { content: "\f648"; } +.bi-piggy-bank-fill::before { content: "\f649"; } +.bi-piggy-bank::before { content: "\f64a"; } +.bi-pin-map-fill::before { content: "\f64b"; } +.bi-pin-map::before { content: "\f64c"; } +.bi-plus-lg::before { content: "\f64d"; } +.bi-question-lg::before { content: "\f64e"; } +.bi-recycle::before { content: "\f64f"; } +.bi-reddit::before { content: "\f650"; } +.bi-safe-fill::before { content: "\f651"; } +.bi-safe2-fill::before { content: "\f652"; } +.bi-safe2::before { content: "\f653"; } +.bi-sd-card-fill::before { content: "\f654"; } +.bi-sd-card::before { content: "\f655"; } +.bi-skype::before { content: "\f656"; } +.bi-slash-lg::before { content: "\f657"; } +.bi-translate::before { content: "\f658"; } +.bi-x-lg::before { content: "\f659"; } +.bi-safe::before { content: "\f65a"; } +.bi-apple::before { content: "\f65b"; } +.bi-microsoft::before { content: "\f65d"; } +.bi-windows::before { content: "\f65e"; } +.bi-behance::before { content: "\f65c"; } +.bi-dribbble::before { content: "\f65f"; } +.bi-line::before { content: "\f660"; } +.bi-medium::before { content: "\f661"; } +.bi-paypal::before { content: "\f662"; } +.bi-pinterest::before { content: "\f663"; } +.bi-signal::before { content: "\f664"; } +.bi-snapchat::before { content: "\f665"; } +.bi-spotify::before { content: "\f666"; } +.bi-stack-overflow::before { content: "\f667"; } +.bi-strava::before { content: "\f668"; } +.bi-wordpress::before { content: "\f669"; } +.bi-vimeo::before { content: "\f66a"; } +.bi-activity::before { content: "\f66b"; } +.bi-easel2-fill::before { content: "\f66c"; } +.bi-easel2::before { content: "\f66d"; } +.bi-easel3-fill::before { content: "\f66e"; } +.bi-easel3::before { content: "\f66f"; } +.bi-fan::before { content: "\f670"; } +.bi-fingerprint::before { content: "\f671"; } +.bi-graph-down-arrow::before { content: "\f672"; } +.bi-graph-up-arrow::before { content: "\f673"; } +.bi-hypnotize::before { content: "\f674"; } +.bi-magic::before { content: "\f675"; } +.bi-person-rolodex::before { content: "\f676"; } +.bi-person-video::before { content: "\f677"; } +.bi-person-video2::before { content: "\f678"; } +.bi-person-video3::before { content: "\f679"; } +.bi-person-workspace::before { content: "\f67a"; } +.bi-radioactive::before { content: "\f67b"; } +.bi-webcam-fill::before { content: "\f67c"; } +.bi-webcam::before { content: "\f67d"; } +.bi-yin-yang::before { content: "\f67e"; } +.bi-bandaid-fill::before { content: "\f680"; } +.bi-bandaid::before { content: "\f681"; } +.bi-bluetooth::before { content: "\f682"; } +.bi-body-text::before { content: "\f683"; } +.bi-boombox::before { content: "\f684"; } +.bi-boxes::before { content: "\f685"; } +.bi-dpad-fill::before { content: "\f686"; } +.bi-dpad::before { content: "\f687"; } +.bi-ear-fill::before { content: "\f688"; } +.bi-ear::before { content: "\f689"; } +.bi-envelope-check-fill::before { content: "\f68b"; } +.bi-envelope-check::before { content: "\f68c"; } +.bi-envelope-dash-fill::before { content: "\f68e"; } +.bi-envelope-dash::before { content: "\f68f"; } +.bi-envelope-exclamation-fill::before { content: "\f691"; } +.bi-envelope-exclamation::before { content: "\f692"; } +.bi-envelope-plus-fill::before { content: "\f693"; } +.bi-envelope-plus::before { content: "\f694"; } +.bi-envelope-slash-fill::before { content: "\f696"; } +.bi-envelope-slash::before { content: "\f697"; } +.bi-envelope-x-fill::before { content: "\f699"; } +.bi-envelope-x::before { content: "\f69a"; } +.bi-explicit-fill::before { content: "\f69b"; } +.bi-explicit::before { content: "\f69c"; } +.bi-git::before { content: "\f69d"; } +.bi-infinity::before { content: "\f69e"; } +.bi-list-columns-reverse::before { content: "\f69f"; } +.bi-list-columns::before { content: "\f6a0"; } +.bi-meta::before { content: "\f6a1"; } +.bi-nintendo-switch::before { content: "\f6a4"; } +.bi-pc-display-horizontal::before { content: "\f6a5"; } +.bi-pc-display::before { content: "\f6a6"; } +.bi-pc-horizontal::before { content: "\f6a7"; } +.bi-pc::before { content: "\f6a8"; } +.bi-playstation::before { content: "\f6a9"; } +.bi-plus-slash-minus::before { content: "\f6aa"; } +.bi-projector-fill::before { content: "\f6ab"; } +.bi-projector::before { content: "\f6ac"; } +.bi-qr-code-scan::before { content: "\f6ad"; } +.bi-qr-code::before { content: "\f6ae"; } +.bi-quora::before { content: "\f6af"; } +.bi-quote::before { content: "\f6b0"; } +.bi-robot::before { content: "\f6b1"; } +.bi-send-check-fill::before { content: "\f6b2"; } +.bi-send-check::before { content: "\f6b3"; } +.bi-send-dash-fill::before { content: "\f6b4"; } +.bi-send-dash::before { content: "\f6b5"; } +.bi-send-exclamation-fill::before { content: "\f6b7"; } +.bi-send-exclamation::before { content: "\f6b8"; } +.bi-send-fill::before { content: "\f6b9"; } +.bi-send-plus-fill::before { content: "\f6ba"; } +.bi-send-plus::before { content: "\f6bb"; } +.bi-send-slash-fill::before { content: "\f6bc"; } +.bi-send-slash::before { content: "\f6bd"; } +.bi-send-x-fill::before { content: "\f6be"; } +.bi-send-x::before { content: "\f6bf"; } +.bi-send::before { content: "\f6c0"; } +.bi-steam::before { content: "\f6c1"; } +.bi-terminal-dash::before { content: "\f6c3"; } +.bi-terminal-plus::before { content: "\f6c4"; } +.bi-terminal-split::before { content: "\f6c5"; } +.bi-ticket-detailed-fill::before { content: "\f6c6"; } +.bi-ticket-detailed::before { content: "\f6c7"; } +.bi-ticket-fill::before { content: "\f6c8"; } +.bi-ticket-perforated-fill::before { content: "\f6c9"; } +.bi-ticket-perforated::before { content: "\f6ca"; } +.bi-ticket::before { content: "\f6cb"; } +.bi-tiktok::before { content: "\f6cc"; } +.bi-window-dash::before { content: "\f6cd"; } +.bi-window-desktop::before { content: "\f6ce"; } +.bi-window-fullscreen::before { content: "\f6cf"; } +.bi-window-plus::before { content: "\f6d0"; } +.bi-window-split::before { content: "\f6d1"; } +.bi-window-stack::before { content: "\f6d2"; } +.bi-window-x::before { content: "\f6d3"; } +.bi-xbox::before { content: "\f6d4"; } +.bi-ethernet::before { content: "\f6d5"; } +.bi-hdmi-fill::before { content: "\f6d6"; } +.bi-hdmi::before { content: "\f6d7"; } +.bi-usb-c-fill::before { content: "\f6d8"; } +.bi-usb-c::before { content: "\f6d9"; } +.bi-usb-fill::before { content: "\f6da"; } +.bi-usb-plug-fill::before { content: "\f6db"; } +.bi-usb-plug::before { content: "\f6dc"; } +.bi-usb-symbol::before { content: "\f6dd"; } +.bi-usb::before { content: "\f6de"; } +.bi-boombox-fill::before { content: "\f6df"; } +.bi-displayport::before { content: "\f6e1"; } +.bi-gpu-card::before { content: "\f6e2"; } +.bi-memory::before { content: "\f6e3"; } +.bi-modem-fill::before { content: "\f6e4"; } +.bi-modem::before { content: "\f6e5"; } +.bi-motherboard-fill::before { content: "\f6e6"; } +.bi-motherboard::before { content: "\f6e7"; } +.bi-optical-audio-fill::before { content: "\f6e8"; } +.bi-optical-audio::before { content: "\f6e9"; } +.bi-pci-card::before { content: "\f6ea"; } +.bi-router-fill::before { content: "\f6eb"; } +.bi-router::before { content: "\f6ec"; } +.bi-thunderbolt-fill::before { content: "\f6ef"; } +.bi-thunderbolt::before { content: "\f6f0"; } +.bi-usb-drive-fill::before { content: "\f6f1"; } +.bi-usb-drive::before { content: "\f6f2"; } +.bi-usb-micro-fill::before { content: "\f6f3"; } +.bi-usb-micro::before { content: "\f6f4"; } +.bi-usb-mini-fill::before { content: "\f6f5"; } +.bi-usb-mini::before { content: "\f6f6"; } +.bi-cloud-haze2::before { content: "\f6f7"; } +.bi-device-hdd-fill::before { content: "\f6f8"; } +.bi-device-hdd::before { content: "\f6f9"; } +.bi-device-ssd-fill::before { content: "\f6fa"; } +.bi-device-ssd::before { content: "\f6fb"; } +.bi-displayport-fill::before { content: "\f6fc"; } +.bi-mortarboard-fill::before { content: "\f6fd"; } +.bi-mortarboard::before { content: "\f6fe"; } +.bi-terminal-x::before { content: "\f6ff"; } +.bi-arrow-through-heart-fill::before { content: "\f700"; } +.bi-arrow-through-heart::before { content: "\f701"; } +.bi-badge-sd-fill::before { content: "\f702"; } +.bi-badge-sd::before { content: "\f703"; } +.bi-bag-heart-fill::before { content: "\f704"; } +.bi-bag-heart::before { content: "\f705"; } +.bi-balloon-fill::before { content: "\f706"; } +.bi-balloon-heart-fill::before { content: "\f707"; } +.bi-balloon-heart::before { content: "\f708"; } +.bi-balloon::before { content: "\f709"; } +.bi-box2-fill::before { content: "\f70a"; } +.bi-box2-heart-fill::before { content: "\f70b"; } +.bi-box2-heart::before { content: "\f70c"; } +.bi-box2::before { content: "\f70d"; } +.bi-braces-asterisk::before { content: "\f70e"; } +.bi-calendar-heart-fill::before { content: "\f70f"; } +.bi-calendar-heart::before { content: "\f710"; } +.bi-calendar2-heart-fill::before { content: "\f711"; } +.bi-calendar2-heart::before { content: "\f712"; } +.bi-chat-heart-fill::before { content: "\f713"; } +.bi-chat-heart::before { content: "\f714"; } +.bi-chat-left-heart-fill::before { content: "\f715"; } +.bi-chat-left-heart::before { content: "\f716"; } +.bi-chat-right-heart-fill::before { content: "\f717"; } +.bi-chat-right-heart::before { content: "\f718"; } +.bi-chat-square-heart-fill::before { content: "\f719"; } +.bi-chat-square-heart::before { content: "\f71a"; } +.bi-clipboard-check-fill::before { content: "\f71b"; } +.bi-clipboard-data-fill::before { content: "\f71c"; } +.bi-clipboard-fill::before { content: "\f71d"; } +.bi-clipboard-heart-fill::before { content: "\f71e"; } +.bi-clipboard-heart::before { content: "\f71f"; } +.bi-clipboard-minus-fill::before { content: "\f720"; } +.bi-clipboard-plus-fill::before { content: "\f721"; } +.bi-clipboard-pulse::before { content: "\f722"; } +.bi-clipboard-x-fill::before { content: "\f723"; } +.bi-clipboard2-check-fill::before { content: "\f724"; } +.bi-clipboard2-check::before { content: "\f725"; } +.bi-clipboard2-data-fill::before { content: "\f726"; } +.bi-clipboard2-data::before { content: "\f727"; } +.bi-clipboard2-fill::before { content: "\f728"; } +.bi-clipboard2-heart-fill::before { content: "\f729"; } +.bi-clipboard2-heart::before { content: "\f72a"; } +.bi-clipboard2-minus-fill::before { content: "\f72b"; } +.bi-clipboard2-minus::before { content: "\f72c"; } +.bi-clipboard2-plus-fill::before { content: "\f72d"; } +.bi-clipboard2-plus::before { content: "\f72e"; } +.bi-clipboard2-pulse-fill::before { content: "\f72f"; } +.bi-clipboard2-pulse::before { content: "\f730"; } +.bi-clipboard2-x-fill::before { content: "\f731"; } +.bi-clipboard2-x::before { content: "\f732"; } +.bi-clipboard2::before { content: "\f733"; } +.bi-emoji-kiss-fill::before { content: "\f734"; } +.bi-emoji-kiss::before { content: "\f735"; } +.bi-envelope-heart-fill::before { content: "\f736"; } +.bi-envelope-heart::before { content: "\f737"; } +.bi-envelope-open-heart-fill::before { content: "\f738"; } +.bi-envelope-open-heart::before { content: "\f739"; } +.bi-envelope-paper-fill::before { content: "\f73a"; } +.bi-envelope-paper-heart-fill::before { content: "\f73b"; } +.bi-envelope-paper-heart::before { content: "\f73c"; } +.bi-envelope-paper::before { content: "\f73d"; } +.bi-filetype-aac::before { content: "\f73e"; } +.bi-filetype-ai::before { content: "\f73f"; } +.bi-filetype-bmp::before { content: "\f740"; } +.bi-filetype-cs::before { content: "\f741"; } +.bi-filetype-css::before { content: "\f742"; } +.bi-filetype-csv::before { content: "\f743"; } +.bi-filetype-doc::before { content: "\f744"; } +.bi-filetype-docx::before { content: "\f745"; } +.bi-filetype-exe::before { content: "\f746"; } +.bi-filetype-gif::before { content: "\f747"; } +.bi-filetype-heic::before { content: "\f748"; } +.bi-filetype-html::before { content: "\f749"; } +.bi-filetype-java::before { content: "\f74a"; } +.bi-filetype-jpg::before { content: "\f74b"; } +.bi-filetype-js::before { content: "\f74c"; } +.bi-filetype-jsx::before { content: "\f74d"; } +.bi-filetype-key::before { content: "\f74e"; } +.bi-filetype-m4p::before { content: "\f74f"; } +.bi-filetype-md::before { content: "\f750"; } +.bi-filetype-mdx::before { content: "\f751"; } +.bi-filetype-mov::before { content: "\f752"; } +.bi-filetype-mp3::before { content: "\f753"; } +.bi-filetype-mp4::before { content: "\f754"; } +.bi-filetype-otf::before { content: "\f755"; } +.bi-filetype-pdf::before { content: "\f756"; } +.bi-filetype-php::before { content: "\f757"; } +.bi-filetype-png::before { content: "\f758"; } +.bi-filetype-ppt::before { content: "\f75a"; } +.bi-filetype-psd::before { content: "\f75b"; } +.bi-filetype-py::before { content: "\f75c"; } +.bi-filetype-raw::before { content: "\f75d"; } +.bi-filetype-rb::before { content: "\f75e"; } +.bi-filetype-sass::before { content: "\f75f"; } +.bi-filetype-scss::before { content: "\f760"; } +.bi-filetype-sh::before { content: "\f761"; } +.bi-filetype-svg::before { content: "\f762"; } +.bi-filetype-tiff::before { content: "\f763"; } +.bi-filetype-tsx::before { content: "\f764"; } +.bi-filetype-ttf::before { content: "\f765"; } +.bi-filetype-txt::before { content: "\f766"; } +.bi-filetype-wav::before { content: "\f767"; } +.bi-filetype-woff::before { content: "\f768"; } +.bi-filetype-xls::before { content: "\f76a"; } +.bi-filetype-xml::before { content: "\f76b"; } +.bi-filetype-yml::before { content: "\f76c"; } +.bi-heart-arrow::before { content: "\f76d"; } +.bi-heart-pulse-fill::before { content: "\f76e"; } +.bi-heart-pulse::before { content: "\f76f"; } +.bi-heartbreak-fill::before { content: "\f770"; } +.bi-heartbreak::before { content: "\f771"; } +.bi-hearts::before { content: "\f772"; } +.bi-hospital-fill::before { content: "\f773"; } +.bi-hospital::before { content: "\f774"; } +.bi-house-heart-fill::before { content: "\f775"; } +.bi-house-heart::before { content: "\f776"; } +.bi-incognito::before { content: "\f777"; } +.bi-magnet-fill::before { content: "\f778"; } +.bi-magnet::before { content: "\f779"; } +.bi-person-heart::before { content: "\f77a"; } +.bi-person-hearts::before { content: "\f77b"; } +.bi-phone-flip::before { content: "\f77c"; } +.bi-plugin::before { content: "\f77d"; } +.bi-postage-fill::before { content: "\f77e"; } +.bi-postage-heart-fill::before { content: "\f77f"; } +.bi-postage-heart::before { content: "\f780"; } +.bi-postage::before { content: "\f781"; } +.bi-postcard-fill::before { content: "\f782"; } +.bi-postcard-heart-fill::before { content: "\f783"; } +.bi-postcard-heart::before { content: "\f784"; } +.bi-postcard::before { content: "\f785"; } +.bi-search-heart-fill::before { content: "\f786"; } +.bi-search-heart::before { content: "\f787"; } +.bi-sliders2-vertical::before { content: "\f788"; } +.bi-sliders2::before { content: "\f789"; } +.bi-trash3-fill::before { content: "\f78a"; } +.bi-trash3::before { content: "\f78b"; } +.bi-valentine::before { content: "\f78c"; } +.bi-valentine2::before { content: "\f78d"; } +.bi-wrench-adjustable-circle-fill::before { content: "\f78e"; } +.bi-wrench-adjustable-circle::before { content: "\f78f"; } +.bi-wrench-adjustable::before { content: "\f790"; } +.bi-filetype-json::before { content: "\f791"; } +.bi-filetype-pptx::before { content: "\f792"; } +.bi-filetype-xlsx::before { content: "\f793"; } +.bi-1-circle-fill::before { content: "\f796"; } +.bi-1-circle::before { content: "\f797"; } +.bi-1-square-fill::before { content: "\f798"; } +.bi-1-square::before { content: "\f799"; } +.bi-2-circle-fill::before { content: "\f79c"; } +.bi-2-circle::before { content: "\f79d"; } +.bi-2-square-fill::before { content: "\f79e"; } +.bi-2-square::before { content: "\f79f"; } +.bi-3-circle-fill::before { content: "\f7a2"; } +.bi-3-circle::before { content: "\f7a3"; } +.bi-3-square-fill::before { content: "\f7a4"; } +.bi-3-square::before { content: "\f7a5"; } +.bi-4-circle-fill::before { content: "\f7a8"; } +.bi-4-circle::before { content: "\f7a9"; } +.bi-4-square-fill::before { content: "\f7aa"; } +.bi-4-square::before { content: "\f7ab"; } +.bi-5-circle-fill::before { content: "\f7ae"; } +.bi-5-circle::before { content: "\f7af"; } +.bi-5-square-fill::before { content: "\f7b0"; } +.bi-5-square::before { content: "\f7b1"; } +.bi-6-circle-fill::before { content: "\f7b4"; } +.bi-6-circle::before { content: "\f7b5"; } +.bi-6-square-fill::before { content: "\f7b6"; } +.bi-6-square::before { content: "\f7b7"; } +.bi-7-circle-fill::before { content: "\f7ba"; } +.bi-7-circle::before { content: "\f7bb"; } +.bi-7-square-fill::before { content: "\f7bc"; } +.bi-7-square::before { content: "\f7bd"; } +.bi-8-circle-fill::before { content: "\f7c0"; } +.bi-8-circle::before { content: "\f7c1"; } +.bi-8-square-fill::before { content: "\f7c2"; } +.bi-8-square::before { content: "\f7c3"; } +.bi-9-circle-fill::before { content: "\f7c6"; } +.bi-9-circle::before { content: "\f7c7"; } +.bi-9-square-fill::before { content: "\f7c8"; } +.bi-9-square::before { content: "\f7c9"; } +.bi-airplane-engines-fill::before { content: "\f7ca"; } +.bi-airplane-engines::before { content: "\f7cb"; } +.bi-airplane-fill::before { content: "\f7cc"; } +.bi-airplane::before { content: "\f7cd"; } +.bi-alexa::before { content: "\f7ce"; } +.bi-alipay::before { content: "\f7cf"; } +.bi-android::before { content: "\f7d0"; } +.bi-android2::before { content: "\f7d1"; } +.bi-box-fill::before { content: "\f7d2"; } +.bi-box-seam-fill::before { content: "\f7d3"; } +.bi-browser-chrome::before { content: "\f7d4"; } +.bi-browser-edge::before { content: "\f7d5"; } +.bi-browser-firefox::before { content: "\f7d6"; } +.bi-browser-safari::before { content: "\f7d7"; } +.bi-c-circle-fill::before { content: "\f7da"; } +.bi-c-circle::before { content: "\f7db"; } +.bi-c-square-fill::before { content: "\f7dc"; } +.bi-c-square::before { content: "\f7dd"; } +.bi-capsule-pill::before { content: "\f7de"; } +.bi-capsule::before { content: "\f7df"; } +.bi-car-front-fill::before { content: "\f7e0"; } +.bi-car-front::before { content: "\f7e1"; } +.bi-cassette-fill::before { content: "\f7e2"; } +.bi-cassette::before { content: "\f7e3"; } +.bi-cc-circle-fill::before { content: "\f7e6"; } +.bi-cc-circle::before { content: "\f7e7"; } +.bi-cc-square-fill::before { content: "\f7e8"; } +.bi-cc-square::before { content: "\f7e9"; } +.bi-cup-hot-fill::before { content: "\f7ea"; } +.bi-cup-hot::before { content: "\f7eb"; } +.bi-currency-rupee::before { content: "\f7ec"; } +.bi-dropbox::before { content: "\f7ed"; } +.bi-escape::before { content: "\f7ee"; } +.bi-fast-forward-btn-fill::before { content: "\f7ef"; } +.bi-fast-forward-btn::before { content: "\f7f0"; } +.bi-fast-forward-circle-fill::before { content: "\f7f1"; } +.bi-fast-forward-circle::before { content: "\f7f2"; } +.bi-fast-forward-fill::before { content: "\f7f3"; } +.bi-fast-forward::before { content: "\f7f4"; } +.bi-filetype-sql::before { content: "\f7f5"; } +.bi-fire::before { content: "\f7f6"; } +.bi-google-play::before { content: "\f7f7"; } +.bi-h-circle-fill::before { content: "\f7fa"; } +.bi-h-circle::before { content: "\f7fb"; } +.bi-h-square-fill::before { content: "\f7fc"; } +.bi-h-square::before { content: "\f7fd"; } +.bi-indent::before { content: "\f7fe"; } +.bi-lungs-fill::before { content: "\f7ff"; } +.bi-lungs::before { content: "\f800"; } +.bi-microsoft-teams::before { content: "\f801"; } +.bi-p-circle-fill::before { content: "\f804"; } +.bi-p-circle::before { content: "\f805"; } +.bi-p-square-fill::before { content: "\f806"; } +.bi-p-square::before { content: "\f807"; } +.bi-pass-fill::before { content: "\f808"; } +.bi-pass::before { content: "\f809"; } +.bi-prescription::before { content: "\f80a"; } +.bi-prescription2::before { content: "\f80b"; } +.bi-r-circle-fill::before { content: "\f80e"; } +.bi-r-circle::before { content: "\f80f"; } +.bi-r-square-fill::before { content: "\f810"; } +.bi-r-square::before { content: "\f811"; } +.bi-repeat-1::before { content: "\f812"; } +.bi-repeat::before { content: "\f813"; } +.bi-rewind-btn-fill::before { content: "\f814"; } +.bi-rewind-btn::before { content: "\f815"; } +.bi-rewind-circle-fill::before { content: "\f816"; } +.bi-rewind-circle::before { content: "\f817"; } +.bi-rewind-fill::before { content: "\f818"; } +.bi-rewind::before { content: "\f819"; } +.bi-train-freight-front-fill::before { content: "\f81a"; } +.bi-train-freight-front::before { content: "\f81b"; } +.bi-train-front-fill::before { content: "\f81c"; } +.bi-train-front::before { content: "\f81d"; } +.bi-train-lightrail-front-fill::before { content: "\f81e"; } +.bi-train-lightrail-front::before { content: "\f81f"; } +.bi-truck-front-fill::before { content: "\f820"; } +.bi-truck-front::before { content: "\f821"; } +.bi-ubuntu::before { content: "\f822"; } +.bi-unindent::before { content: "\f823"; } +.bi-unity::before { content: "\f824"; } +.bi-universal-access-circle::before { content: "\f825"; } +.bi-universal-access::before { content: "\f826"; } +.bi-virus::before { content: "\f827"; } +.bi-virus2::before { content: "\f828"; } +.bi-wechat::before { content: "\f829"; } +.bi-yelp::before { content: "\f82a"; } +.bi-sign-stop-fill::before { content: "\f82b"; } +.bi-sign-stop-lights-fill::before { content: "\f82c"; } +.bi-sign-stop-lights::before { content: "\f82d"; } +.bi-sign-stop::before { content: "\f82e"; } +.bi-sign-turn-left-fill::before { content: "\f82f"; } +.bi-sign-turn-left::before { content: "\f830"; } +.bi-sign-turn-right-fill::before { content: "\f831"; } +.bi-sign-turn-right::before { content: "\f832"; } +.bi-sign-turn-slight-left-fill::before { content: "\f833"; } +.bi-sign-turn-slight-left::before { content: "\f834"; } +.bi-sign-turn-slight-right-fill::before { content: "\f835"; } +.bi-sign-turn-slight-right::before { content: "\f836"; } +.bi-sign-yield-fill::before { content: "\f837"; } +.bi-sign-yield::before { content: "\f838"; } +.bi-ev-station-fill::before { content: "\f839"; } +.bi-ev-station::before { content: "\f83a"; } +.bi-fuel-pump-diesel-fill::before { content: "\f83b"; } +.bi-fuel-pump-diesel::before { content: "\f83c"; } +.bi-fuel-pump-fill::before { content: "\f83d"; } +.bi-fuel-pump::before { content: "\f83e"; } +.bi-0-circle-fill::before { content: "\f83f"; } +.bi-0-circle::before { content: "\f840"; } +.bi-0-square-fill::before { content: "\f841"; } +.bi-0-square::before { content: "\f842"; } +.bi-rocket-fill::before { content: "\f843"; } +.bi-rocket-takeoff-fill::before { content: "\f844"; } +.bi-rocket-takeoff::before { content: "\f845"; } +.bi-rocket::before { content: "\f846"; } +.bi-stripe::before { content: "\f847"; } +.bi-subscript::before { content: "\f848"; } +.bi-superscript::before { content: "\f849"; } +.bi-trello::before { content: "\f84a"; } +.bi-envelope-at-fill::before { content: "\f84b"; } +.bi-envelope-at::before { content: "\f84c"; } +.bi-regex::before { content: "\f84d"; } +.bi-text-wrap::before { content: "\f84e"; } +.bi-sign-dead-end-fill::before { content: "\f84f"; } +.bi-sign-dead-end::before { content: "\f850"; } +.bi-sign-do-not-enter-fill::before { content: "\f851"; } +.bi-sign-do-not-enter::before { content: "\f852"; } +.bi-sign-intersection-fill::before { content: "\f853"; } +.bi-sign-intersection-side-fill::before { content: "\f854"; } +.bi-sign-intersection-side::before { content: "\f855"; } +.bi-sign-intersection-t-fill::before { content: "\f856"; } +.bi-sign-intersection-t::before { content: "\f857"; } +.bi-sign-intersection-y-fill::before { content: "\f858"; } +.bi-sign-intersection-y::before { content: "\f859"; } +.bi-sign-intersection::before { content: "\f85a"; } +.bi-sign-merge-left-fill::before { content: "\f85b"; } +.bi-sign-merge-left::before { content: "\f85c"; } +.bi-sign-merge-right-fill::before { content: "\f85d"; } +.bi-sign-merge-right::before { content: "\f85e"; } +.bi-sign-no-left-turn-fill::before { content: "\f85f"; } +.bi-sign-no-left-turn::before { content: "\f860"; } +.bi-sign-no-parking-fill::before { content: "\f861"; } +.bi-sign-no-parking::before { content: "\f862"; } +.bi-sign-no-right-turn-fill::before { content: "\f863"; } +.bi-sign-no-right-turn::before { content: "\f864"; } +.bi-sign-railroad-fill::before { content: "\f865"; } +.bi-sign-railroad::before { content: "\f866"; } +.bi-building-add::before { content: "\f867"; } +.bi-building-check::before { content: "\f868"; } +.bi-building-dash::before { content: "\f869"; } +.bi-building-down::before { content: "\f86a"; } +.bi-building-exclamation::before { content: "\f86b"; } +.bi-building-fill-add::before { content: "\f86c"; } +.bi-building-fill-check::before { content: "\f86d"; } +.bi-building-fill-dash::before { content: "\f86e"; } +.bi-building-fill-down::before { content: "\f86f"; } +.bi-building-fill-exclamation::before { content: "\f870"; } +.bi-building-fill-gear::before { content: "\f871"; } +.bi-building-fill-lock::before { content: "\f872"; } +.bi-building-fill-slash::before { content: "\f873"; } +.bi-building-fill-up::before { content: "\f874"; } +.bi-building-fill-x::before { content: "\f875"; } +.bi-building-fill::before { content: "\f876"; } +.bi-building-gear::before { content: "\f877"; } +.bi-building-lock::before { content: "\f878"; } +.bi-building-slash::before { content: "\f879"; } +.bi-building-up::before { content: "\f87a"; } +.bi-building-x::before { content: "\f87b"; } +.bi-buildings-fill::before { content: "\f87c"; } +.bi-buildings::before { content: "\f87d"; } +.bi-bus-front-fill::before { content: "\f87e"; } +.bi-bus-front::before { content: "\f87f"; } +.bi-ev-front-fill::before { content: "\f880"; } +.bi-ev-front::before { content: "\f881"; } +.bi-globe-americas::before { content: "\f882"; } +.bi-globe-asia-australia::before { content: "\f883"; } +.bi-globe-central-south-asia::before { content: "\f884"; } +.bi-globe-europe-africa::before { content: "\f885"; } +.bi-house-add-fill::before { content: "\f886"; } +.bi-house-add::before { content: "\f887"; } +.bi-house-check-fill::before { content: "\f888"; } +.bi-house-check::before { content: "\f889"; } +.bi-house-dash-fill::before { content: "\f88a"; } +.bi-house-dash::before { content: "\f88b"; } +.bi-house-down-fill::before { content: "\f88c"; } +.bi-house-down::before { content: "\f88d"; } +.bi-house-exclamation-fill::before { content: "\f88e"; } +.bi-house-exclamation::before { content: "\f88f"; } +.bi-house-gear-fill::before { content: "\f890"; } +.bi-house-gear::before { content: "\f891"; } +.bi-house-lock-fill::before { content: "\f892"; } +.bi-house-lock::before { content: "\f893"; } +.bi-house-slash-fill::before { content: "\f894"; } +.bi-house-slash::before { content: "\f895"; } +.bi-house-up-fill::before { content: "\f896"; } +.bi-house-up::before { content: "\f897"; } +.bi-house-x-fill::before { content: "\f898"; } +.bi-house-x::before { content: "\f899"; } +.bi-person-add::before { content: "\f89a"; } +.bi-person-down::before { content: "\f89b"; } +.bi-person-exclamation::before { content: "\f89c"; } +.bi-person-fill-add::before { content: "\f89d"; } +.bi-person-fill-check::before { content: "\f89e"; } +.bi-person-fill-dash::before { content: "\f89f"; } +.bi-person-fill-down::before { content: "\f8a0"; } +.bi-person-fill-exclamation::before { content: "\f8a1"; } +.bi-person-fill-gear::before { content: "\f8a2"; } +.bi-person-fill-lock::before { content: "\f8a3"; } +.bi-person-fill-slash::before { content: "\f8a4"; } +.bi-person-fill-up::before { content: "\f8a5"; } +.bi-person-fill-x::before { content: "\f8a6"; } +.bi-person-gear::before { content: "\f8a7"; } +.bi-person-lock::before { content: "\f8a8"; } +.bi-person-slash::before { content: "\f8a9"; } +.bi-person-up::before { content: "\f8aa"; } +.bi-scooter::before { content: "\f8ab"; } +.bi-taxi-front-fill::before { content: "\f8ac"; } +.bi-taxi-front::before { content: "\f8ad"; } +.bi-amd::before { content: "\f8ae"; } +.bi-database-add::before { content: "\f8af"; } +.bi-database-check::before { content: "\f8b0"; } +.bi-database-dash::before { content: "\f8b1"; } +.bi-database-down::before { content: "\f8b2"; } +.bi-database-exclamation::before { content: "\f8b3"; } +.bi-database-fill-add::before { content: "\f8b4"; } +.bi-database-fill-check::before { content: "\f8b5"; } +.bi-database-fill-dash::before { content: "\f8b6"; } +.bi-database-fill-down::before { content: "\f8b7"; } +.bi-database-fill-exclamation::before { content: "\f8b8"; } +.bi-database-fill-gear::before { content: "\f8b9"; } +.bi-database-fill-lock::before { content: "\f8ba"; } +.bi-database-fill-slash::before { content: "\f8bb"; } +.bi-database-fill-up::before { content: "\f8bc"; } +.bi-database-fill-x::before { content: "\f8bd"; } +.bi-database-fill::before { content: "\f8be"; } +.bi-database-gear::before { content: "\f8bf"; } +.bi-database-lock::before { content: "\f8c0"; } +.bi-database-slash::before { content: "\f8c1"; } +.bi-database-up::before { content: "\f8c2"; } +.bi-database-x::before { content: "\f8c3"; } +.bi-database::before { content: "\f8c4"; } +.bi-houses-fill::before { content: "\f8c5"; } +.bi-houses::before { content: "\f8c6"; } +.bi-nvidia::before { content: "\f8c7"; } +.bi-person-vcard-fill::before { content: "\f8c8"; } +.bi-person-vcard::before { content: "\f8c9"; } +.bi-sina-weibo::before { content: "\f8ca"; } +.bi-tencent-qq::before { content: "\f8cb"; } +.bi-wikipedia::before { content: "\f8cc"; } +.bi-alphabet-uppercase::before { content: "\f2a5"; } +.bi-alphabet::before { content: "\f68a"; } +.bi-amazon::before { content: "\f68d"; } +.bi-arrows-collapse-vertical::before { content: "\f690"; } +.bi-arrows-expand-vertical::before { content: "\f695"; } +.bi-arrows-vertical::before { content: "\f698"; } +.bi-arrows::before { content: "\f6a2"; } +.bi-ban-fill::before { content: "\f6a3"; } +.bi-ban::before { content: "\f6b6"; } +.bi-bing::before { content: "\f6c2"; } +.bi-cake::before { content: "\f6e0"; } +.bi-cake2::before { content: "\f6ed"; } +.bi-cookie::before { content: "\f6ee"; } +.bi-copy::before { content: "\f759"; } +.bi-crosshair::before { content: "\f769"; } +.bi-crosshair2::before { content: "\f794"; } +.bi-emoji-astonished-fill::before { content: "\f795"; } +.bi-emoji-astonished::before { content: "\f79a"; } +.bi-emoji-grimace-fill::before { content: "\f79b"; } +.bi-emoji-grimace::before { content: "\f7a0"; } +.bi-emoji-grin-fill::before { content: "\f7a1"; } +.bi-emoji-grin::before { content: "\f7a6"; } +.bi-emoji-surprise-fill::before { content: "\f7a7"; } +.bi-emoji-surprise::before { content: "\f7ac"; } +.bi-emoji-tear-fill::before { content: "\f7ad"; } +.bi-emoji-tear::before { content: "\f7b2"; } +.bi-envelope-arrow-down-fill::before { content: "\f7b3"; } +.bi-envelope-arrow-down::before { content: "\f7b8"; } +.bi-envelope-arrow-up-fill::before { content: "\f7b9"; } +.bi-envelope-arrow-up::before { content: "\f7be"; } +.bi-feather::before { content: "\f7bf"; } +.bi-feather2::before { content: "\f7c4"; } +.bi-floppy-fill::before { content: "\f7c5"; } +.bi-floppy::before { content: "\f7d8"; } +.bi-floppy2-fill::before { content: "\f7d9"; } +.bi-floppy2::before { content: "\f7e4"; } +.bi-gitlab::before { content: "\f7e5"; } +.bi-highlighter::before { content: "\f7f8"; } +.bi-marker-tip::before { content: "\f802"; } +.bi-nvme-fill::before { content: "\f803"; } +.bi-nvme::before { content: "\f80c"; } +.bi-opencollective::before { content: "\f80d"; } +.bi-pci-card-network::before { content: "\f8cd"; } +.bi-pci-card-sound::before { content: "\f8ce"; } +.bi-radar::before { content: "\f8cf"; } +.bi-send-arrow-down-fill::before { content: "\f8d0"; } +.bi-send-arrow-down::before { content: "\f8d1"; } +.bi-send-arrow-up-fill::before { content: "\f8d2"; } +.bi-send-arrow-up::before { content: "\f8d3"; } +.bi-sim-slash-fill::before { content: "\f8d4"; } +.bi-sim-slash::before { content: "\f8d5"; } +.bi-sourceforge::before { content: "\f8d6"; } +.bi-substack::before { content: "\f8d7"; } +.bi-threads-fill::before { content: "\f8d8"; } +.bi-threads::before { content: "\f8d9"; } +.bi-transparency::before { content: "\f8da"; } +.bi-twitter-x::before { content: "\f8db"; } +.bi-type-h4::before { content: "\f8dc"; } +.bi-type-h5::before { content: "\f8dd"; } +.bi-type-h6::before { content: "\f8de"; } +.bi-backpack-fill::before { content: "\f8df"; } +.bi-backpack::before { content: "\f8e0"; } +.bi-backpack2-fill::before { content: "\f8e1"; } +.bi-backpack2::before { content: "\f8e2"; } +.bi-backpack3-fill::before { content: "\f8e3"; } +.bi-backpack3::before { content: "\f8e4"; } +.bi-backpack4-fill::before { content: "\f8e5"; } +.bi-backpack4::before { content: "\f8e6"; } +.bi-brilliance::before { content: "\f8e7"; } +.bi-cake-fill::before { content: "\f8e8"; } +.bi-cake2-fill::before { content: "\f8e9"; } +.bi-duffle-fill::before { content: "\f8ea"; } +.bi-duffle::before { content: "\f8eb"; } +.bi-exposure::before { content: "\f8ec"; } +.bi-gender-neuter::before { content: "\f8ed"; } +.bi-highlights::before { content: "\f8ee"; } +.bi-luggage-fill::before { content: "\f8ef"; } +.bi-luggage::before { content: "\f8f0"; } +.bi-mailbox-flag::before { content: "\f8f1"; } +.bi-mailbox2-flag::before { content: "\f8f2"; } +.bi-noise-reduction::before { content: "\f8f3"; } +.bi-passport-fill::before { content: "\f8f4"; } +.bi-passport::before { content: "\f8f5"; } +.bi-person-arms-up::before { content: "\f8f6"; } +.bi-person-raised-hand::before { content: "\f8f7"; } +.bi-person-standing-dress::before { content: "\f8f8"; } +.bi-person-standing::before { content: "\f8f9"; } +.bi-person-walking::before { content: "\f8fa"; } +.bi-person-wheelchair::before { content: "\f8fb"; } +.bi-shadows::before { content: "\f8fc"; } +.bi-suitcase-fill::before { content: "\f8fd"; } +.bi-suitcase-lg-fill::before { content: "\f8fe"; } +.bi-suitcase-lg::before { content: "\f8ff"; } +.bi-suitcase::before { content: "\f900"; } +.bi-suitcase2-fill::before { content: "\f901"; } +.bi-suitcase2::before { content: "\f902"; } +.bi-vignette::before { content: "\f903"; } diff --git a/site_libs/bootstrap/bootstrap-icons.woff b/site_libs/bootstrap/bootstrap-icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..dbeeb055674125ad78fda0f3d166b36e5cc92336 GIT binary patch literal 176200 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

2+UrCZlNAp`)&G@jg{m-!Dn; zhYym7;-O&8glg>dkFUeu$1lk8mPmg_)x|9l{&e+csF?1#Jg9$uQ2X9BKRmV8)xB#h zw(pR|(=DVs6k|HjCDA+#o^ViggRb^OQ-hAv6nm=Pz4(HDJ~&TS=uM*ZEC#$h zD~UJJdsNkC10`vw?1Pg_r`@c4Iur>!QrC^=byk}`luLEA>K$ALygicMHP3^+!f499 zF{5$E6CsP50M;x4_;!b?y>S?}pT6<@V>d1Xe7m~e@JsLmA5RQJ7Q*l`eER7;252Ss zLkb}(rIfL0AQUd|#LT3fWImejLk+w_3|taFc;hkJH1PYq0pj z6}GN&-0Kf@vI-NvNRCAu0?O%%yIk74Nw3pS`fH?z>AOJwl71(X#g8b;4a(JckgvH$ zh7Y{h-0T{go5AL$(cRqC;l${6yN`9d|7({V6vahJy}2zZx2w{kD7M?|#_fvKzFCzX zXfzt$%vFuXRWlx(`d2lM9&KE8bE7fy3;ga;p_n6l9&7;IHKUi>R6U+&LrwER#Ow~+ z_ApAdf4be~R=1bgiV=@J!$nYibP4p)0|scLn}BwrsBYN`jbl`haZDB4`m3=!Z<@7d z4j!DbXM^nIYiD#+(sM+j=NA(*?lL79QrmpDUL7Z znXU68V7ZvWj;psg?7um7=W<~$#1rlnhk~oSGOue64_KSgcXx(T;HtX&hAyy*DWvL3q+q~gQ?dqE*4`At3rkCbauQ5 z#bAgx3P{q=6I&%Q4?0H808cnn>F(({SeeaNHWeHxWA zrBW^5dt3OUG{zWr5>$yLC zbdBx9h({r(Zl}0SS~9d}+K>bmFVaPOd=O2G7s+5L9})vE&}$f%F0i!4?6AXSQXUh{ z=Le_12eQdzQlg&~@u=eU=OrrD(9cnoJ`dxVDw92t$J4UX-!rkWvqKfWcBBwoNmvt? zhbzRU0M}?UrF7I_^noiDj|r!Rmq0&uPIw27+p?6UJU)7XC3orn(~uOShgaw4lL7jr z7n!nWvHaEfaKO6@FE)YUM^DGXl_5 z2_}a_-%k2j5X5VE0~~6Uf6Q_CW!@-1#y{S}+vdmlM?v1cXXr~WE0(u2^c`uaJRy}U z%J$F9a6ST7_-Ww|o{M0jT)hbBj|)xX%BV0d8(+9WVhsE>7LISbIlF=N9YDLA(tzFW z0x1fK#Q$aU*a5a1zyY=;z=31ULPBu3@@Jd)pgHR|kEP>zTt`GOgIpUZenvP8)Mm?o z7?n`J_Zi(BGI|RR3FZSp((<%2oBWo_{V$ju1McBeE8a_eGppoCP$~u32%;p3puM#m z({!-EL_1s5)CVPgicNw&ItUG@Q7U1oXo-FIhr>o$c3mK(?R_geym>fe`_uG~^>MqL zgHEU8pqs{CXfN23q8SoD#YW7ZLE~$jInzKO(yu@0MpDqINUy^t{5q*Lkv1=R(P@+Q zpx-@BHsiS{nu}j7a^U7ib1~l&IQ1*9K`Sk@wP-BAJ?(F`JKb18iNu|GF^!O#bdcFe zvrQe6u7sK)WM$!a>wv5p4=NYGx_I4ERi(aXYOl7=o{o23a=rH>mgxq4FOKJ+(%sh8 z%gTG5h7p8|*DpOF6Pe2Ts~fe`twp-ANEBM#M!@Ex94=hndP=ySWzXWtIlAi`Cs;-- z^ZK(0qhiV=OnC&{!WsUpZqn|o12=G4Tyl85&o&muWPvO_0VXc#ZT8^N zdW`v&;x9;w5gJA~A1b0k!kbstZuOi)n+Ge3LVlUJ{?&^b6@AOm%|>JyR5NT(r^#~d zD~c+KVtLUK6$$6MYlrKx66&_->;5~TU(iHSnh!l!H^k;rf5nfI#hPL(jRW%s4#|>C zOg}hu=zu{KqA64&!OSm+A|d)*Bq>CaXtG$ArTApU) zm?W->#|e4}K?F|{q!wVS&WeB=YE8u0Wf`MzrEm-{G17F_w-TI}U!ZFu5C?NL93h+> zSVH^1QD1Rnu)?ps`FN8MQE^p=DuhTbbiuMied>VNYN`Stdln{kF=~OQ8H%o`C076| zK-9l)hKfe1B*Ji8G3-zjWxeF6CYAqIj;v-|X&srNi>F$|FpP3ZcT|xYj^Z1EFWIUl zOCZS#RAZN+2qF{LJ{THQmPFGp0j)9VpBtE%eJb&E*GrH#<$^tkGQAF?KaBExweXPe zgTniSj|xu;|3dgx;kUr*{S)Co3jay?Z^R^JasV^<6}q6Xu$A7xtl5Y=TSy&;pqy_TPdon(fs4nx_)OitN(VM1Uu?+UIo=0hB`f6~#;7R3<{PfP8PJ|F(Dm1muVSH*I` z=BJ&3lf1o|6fY1W<|^Gnc=#D*PUIM!sO^4xaE_IVTQj07s_jlP1Od;r!z{HWE3{jvT)gkr7kmA4hU>O7i)PnzHl@Bqbmoe;Y3( zMS|0V87f5ly9^T|{yqT$$c!ML6Y(hF^;=U66!}zs#=e;n@#@0)BT($?Pb2>9gDemU zsD^D3j(-bBMom%7^7^A~(}vF(OyS9Mz~FCZRRYa|x@im7*W(^HTN`8v3XE=D2rGb( zs@si*Vo*t@It=p^t3+kPp1FTnR0;e`hu?f4)OF2-K8^yWD%EA#v~@Kg#45Y3d#Yl= z*Nrf23D*fX;9l*Q1Pg6<7AVW27PBO?ENKm#;TK(Ty}y2`z&-~WkYa8?-K~-@!IP$5`Sf#j`L+Wd7XYRmk(~hV)9KiTDX3sIvax-MXx(V~?PX#T`;tz+S7` z3qi18S7Cgh1g?8)_*tpCREDqO>+p7{;+l4gC$j@OJ^k4b?z1a+2xSGn#ov|H@=|rM zf7$`z`-Stu+k|)H90&9fV3+op<^~g~%Y2?&MOSpuC5;5Zzz04E&7AE;mvqrd%_*I9 zH`&T)%(sa12T+5!$#SUyhwhXpBbJ&Ha4Nmn?oHE3hE$iORwHP%Y%97dvTRgAGEgl@ zDH)QfwBa%}ovtD9K%$TAG?wMvU3s~&6M7A!R5BWv6v#~N2pp>|g7n=bJRrPTcwG3H z@N>ei2){jIE%c*lIcoA~oQ$4LpKmS_H76u=?T%k#5Nm!-i_gIVp74Hy?Eij}rCtAK zkPaIC*;0_uLocX% zK2HIF@#|T}L3S^N)1S z#n%#G0WF4)B;(Ie4EQ5?%||`P#ugac2hFUpk?q;_5#wF6Xs~yVh4&a6ua9RJ9q%qP zv^L`2_s^GAnbp;8A$7ffz85zlZrq5taU*Dw+Bm(Zz$UzoyOnz@_W<{C?latZ?)TI5 zR#3h3GkKw=^bI!v2dBcAvZ4L|tc@LZ1DXpyeEQCHG414cuAogWS(@PjJ7*{Q<2a zKtgw_7sZ@oP+6GWPx#58YlUV2Gy%UR`g&@-`lpwNzULyB;(b#XKV`1cCss{#Urq5C z0djfhZHDw_m8I6X+d|<=mxq?8BEBwzo=21J!N>fv-+DsldNp?^==>k%exCauxUX=3v=fc1g)YLx;uIiC zUuKnQC~G(oUGWhwb>2_2h7-}*zn@@@^zWTCZ;YaFra{CN+iG1OlS-B#g!B_jo+O?y)E{IpMeO)Q$OSQG&?44Y zj((e<_Y`-Mdo6bcte1~+pN3xjdn0RHFKHrYD_obG!kJpv<)v?hI}z*AzXm;e1dZz@ zP1>}=b-9Te*San*E$6tKxDD<;?x(q*;eLhtGOh|APvd$?({-4_b$RGJn$~sc=^g3V zdt=t{C%DgYUj%FE-^VnrmmV=kR=6$?NuSwT>$>E$+*;`h&72^>sMq&`%$)7Z$rwLHbe$)}kOWB=1)djW z9$ACO$~uCm!)1dIUe|HMo*{xL3mASR$n=C>=J(PRpG9(+_-S$g0J5Wo^e{hcv1t0T z25YHRK<{7UuH|0Gy~X#veHk^ukOQ%(nD;Nra86{{(GOz0Idh1otEFL~9mY*L=zF{- z&0Yc)sztA88LBhmVy)zL)mT%FmcjVp=M2fJ7bR_%xj+kzI_Xx`unVqRu>B&d8$?%a zTcs+4L1Pt`>AD^xOADND<$15KxJP-6FyS$d;iaqq5-~qp5wx4G%r!jm4zt;)YI?OX zJE5u{zl@UOt(s7o&3CTUMX%AwXo9h6WT2mk1$ts^8^vCmdRhxz>}FSgOKa5;zma}j?@ zCM_&#qJj@wJ~+NiqxojUVYk!o@&oWh^v89))ffjnNIBr&(e*V>k*>-L5-VUT>LSuF zs#1`dN3Gw9PB1mc!1IawtG!gU%yyS8;9*Z^JTUM9prx)JVj1h#5XI+Xbc>VL4$1YN zIAz0JYn=$SSVqmNPdqN01^=GxaADbYOILniI7~i7!kvZc6=}nUs6ljaK2tY z=r{ix?jK*`Uh_+&+Fx=f`<0hOtH1QV`CV7*V|sm@|K86%%KZ}e6wL)Y2LBCo>ootR z<;K>(2f2|RCsH36Nwv@BrrOR12oNJIG6j2ZPUHT##K#Mw@@ zzvPl*Ypwor%(RX$w?3X`{}LqgOJQz(1g-uukUOGv*1Y;RU*h_~cxwG6C+YgA8vUgw z>?kU|5$f|%-sGsK|7I-P(J;OJQjfp=6hrtj160wOQm_t{|%e- z_BzYs+A5XkW(|(#=?-s`rX=y}f^>L}h$5u}OImRY%^zMWJ&V6#zou!B*YM37HhTvk zqa5O+&Na9LppUF^SHSpn6?ZLn1B_y)xYu#72M)iRdkc3j@cFyo>5!L#0_j10b*wGl zD-cXv9oA_t7D#{zf8WnI4>9Ba#g8!yF>yqiN(0by9*+38Nt@#18ylq-U0&RJ_%ub> zJl(F-*0$&tvFKlzj~xKs76d7tDRJoYQi0VmygBMA@*#BJj7!O ziNHnq8p5^otH4WGAC2qBSE?pg>L%`hs<%Y)e4WP}EL*MX#TBc~E3U=OT(qWWZ*{Rs z!@*%c-Kmr5&e0B7eVyrnrMw4N6*Aj@2W;$UJG;9AQ|2Nx|@HU56@Eqkb3+V{FW zvZUO)e-F}n&uw(K?=HhK;NK?Oog;>d*^F^>UNue_Ww{k`OiQuh5~}wT)&vi|5O#*z z5JiG9_(asTJRFKBNyYHsoT}^aZZ+7!XTS{910F&=Vor%EZUv;#d$^C&oD!*Wc+l(r~po6P>HWJ9W z-$#t0+DRNPEbNgLNoM$!_uiVsKafY0Lh{I}e(u0NJ?AH(Gxhx&h!O*=C5jpyjx36! zvxB&_MWX4Fq-#Xn7@))aAidl4Y`0p# zY-JSENr%rBVmQK@c|m5Pn1-Tk30KPkGx&R0J@xIGppZq^`fDsZ`h3CN$Oa(F2{#4b zKN4m`9P-6rV$iU99s+ET^p|jV(r9U#;Hk}n*7Volc$CKkX{VkY{ZZG!K3R_6u?>=G}0uh%j z*DknB^>M8dbUl&3O_7W#L(0>wQqZM>q}S=Tuo4}|wz6K;{Ktc>R@KQ=p&%OKUe{W4 z3+veG^@0n?*ee=ul635gx@7CJtmEIUl4KaspHfu>EjrZ%rOI*fJbQE8%V5;Jhx;(# zO_7n5vD{OBianNl3N}YcJ5-#vz@Nj^Ym{V4HYyQu&TMx8p__)tBPvUl%bdO{ z@X?{`LXY6$cc2w676tUSX_C1f{AL;*(knf*diuSY#u5haFoWQ@l_T_$eaT0x!eELfI@7OlRRe z3l1KX1yR#wUO28+49O4`ebOY7DG_s0S46l{QB5%?86My|FY!Pj9`=gr8B$L08UJ>| zzfLp?uj9$>a7Hf$`!|v|z(4=&O{@GNULZu^j~rq9L;NZ(59SFGTau#Z&gFDPHVoN6 zlv*OeyTZ)0E=mF~$~v#&P^a>`Eb@XRYSTqY5F|lE)q*GrY$RC|@EWdT^yzyQ_crd6 z-0uWE2uU$Ta~dE|_pt|I3W#ntl}oxNl(2i0 z_Pk>cJ^1J0RLvPB_)5tLpB}~;taq;P@*w48ekEXmWr5!p9Piy59PQ(UW!T+X;z?B` zO)^j5Uy~QAgfB@lC?>Lq{S*`wdA>Z9#wA-3O;cQ46GR!sfGi4!hHy$W=ZJN}XTYY5 zypcc0{c6HHvL5*+SZQ}Qn(OoU9By6_IwoS%mB<(tEPzjAKupiToPNl86b- za1;886{<_c>ux;+{q_m&xBW`$kx>m6VamTZtR9!|Kicm6BI|nrx1=3XRQ;jF!!bvW zPq|F8Wgo`ePFb5nSwEFXTuHMd6>>QsAagO&$LB+*QFL@}#Jl#IPdnHo^>xgVxr)81 z73wLoL7Gl_#p}-cjNVqF6m8VuiZSS*S)lHVYezPpzwj4SNq)m29v#`TBDerFr~}eUP8U4)rYx_WIY6 zPG1jeSR?KlG_U!MTjDPWI*uU{_^nf?F%k#!L9ubCETc0G#;jgHjo3G7IkS{AKjP!} z1NkD!5nVGt`0F{loS!dWn=^7|E(6oQVLGPi8rM*Sw=5VXTw75~b$g{c_2#=@D{DDb ziR-T_$lAT2!JfkGyG>B6VBqXCSXXJH1TPNPYR`BHg4U$&tE zFoJ11*_SJs@bBSaM0(ZTikeg9*HmgiHmaTpiRlf(@Z#KyR%&%mJ`X(VzprW zG+9i4>%5PX6fF*pNQ*@N_+gYt=8YdpjSnU=)<^JQ#+iN+p18UdK&2p5EV)(|RKCxK z0=7nEI@X@c1`H8nJsSe|btJ@xwbE3n>^NoErEs-8D&N*gu&`|yroO(8OUc%OHHKp8 zcA6TO#o|RgYtq_^Tq3R57z}$x7K1O(4`W!Iu2g0DYuj+E62r|DP_6@G_ba%!Z-t|2 z(qz$DY<*5QhO=hB<2BoKe(9j^7XwqBPW^hUn$W?7y9^Vc<51L2W0)`03;)irb-k>2 zePsXlTr)S9*XJL~35I4CawSclNAIj)D*0kDuYm1l+BJ)0km8~J`xlIS&Xml2-n@#^ zW%=&A>&rKSA(P9k9m{+OwAB-`xG5C3#(?EBtnRxX$D|W|MV~>d0oAJ_uZ!!7u993V3#|&yaIy({N=3t zx-KbpQ7$4bH2s#mDI)U3T<+(#m4C_pc5KA{=J*{hV`2EP{`c4v_5#cg%T`B8Td1t> zt&!MsGET82`(%wff|^C&r$HPPIRIr0LT!pt8oE~wBg6R!CUFW&e8CU4(PjA)rrLVGf*52A+J|EeEvqWGxnkB+(X zhI;z6YHY3}Fzd@hk%j?vb)#TByB$Ny34ZKwFXwK?+@w3vUXrHhYAfX)sadi3myMXE zO(L(x()Nm&onb=9HcyQyr;d!s5ni7LHm4(&j*?-t{&mN}Dh95LQ9O==5k0Oe3dT^< zegJ*|mapSta2xzUQU%u$bs;IQCb=uPYiLa%G_SKjS{;Kp?-UTWK{$n>g!qCWFgRTY zL*ZN(gWw#OS3kZT;-mUaGdSltTtgm!^29J;1~ui>M}^oo5725t+kMqbsjdoJ93QTV z?`Ht>AN~wIsedNPau>02&_y3f4KoQ3fiLEJx(}&+5EDehFDST?TrF}dbOm0_s}eYK zwx@C0JDTd!fwLv>`eZm;D!!k~P@eNE%)#atcr4Twx`8&c8#r&MG}8fWT4CShl70(Z zm+~s^HXM6>kIS}=8X!)Vmjl$Vw(kh({1$V>ylE?%y*lOC$dTe6>h#Fn%X~3^uq_dP zZ>qXt*GuT(&}GAVGkQLh*Cym|;HSBbyJvSjHQUg62mYH(x*xrpHL7Y@@y0GNch2ME zu|W(kGqkD#%Cu8E>764ud$#Pb%R@ar+jrgDvwc62?GX8XFxGwx?@yhK?)}+@-sAX$ zG6{V=-WppJv5|M(_$%WPI4O6p+zDkspVpGNF-kk;eR3P> zHzR%bRJ=*aK6k}V`dk#^w{?H}SsFr*cJ2uM?Oej$x6U7kue)E%$ovL1>Ye^puUS*7SWRQDh z3y%SR->^nz(r7K++8T}5NVa!vXO=5VliyXAz#hVKt6Pfns}Z!*PZC{SUss13)^Rn; zu#DEas*{!xx9b>vuwK|MP$+UIGBS-yl?M~P#PJA%{>3Tubq?AoK}6HVYqRO)bjeTZ!{br%|@9 zJ&u2JELK|1h%9Pl2PJU>vU+_dTt*A7D!4ucV`pg%RzJDpmJIa43Gu5MScC5Pw(oW=8fng&(`DMndM&i(X;e(pN6j#a8*KJ2eMeuy>Q&zrj4N! zkSNcGHq#FybLm;SLdS@&+qf1((!Zf-n)0vls|6#zW<TL9B`b*zM&tfo3 z%+QMYr?HxOhz$v_5mcNB=+<%3M2ew=PMe*jpxuvw^9(JU8!dq995&|$LMP3{1YY(4 ze~f?`mnvIMzte4QfglFL=2_flW9cS@VSa6%Vk$niG5XJg6}+|$7bsz2;jqG|Qf8%v zC(>3I8S z9QRJ}w0$#2f;^_9VZG-$Zi&Wlgi}v}EMg0M0V*uk+QhnhO(hiniR{hK)LJ$8_jo8t z91A+LwFrNPWs0mC_j$i6GHf0zPfoULwd1aJmIm?PUvSyVWEiKI({L%u)8XsL{+c6P zue>h?ttST%VT4(~M=`k^OElNHe|C8m{;gGJX5hfn@(zDkD;BlGypw+vvG@YJ^9n*A zoU!v0qM<*k8{$OXb_@4gF6H;c_m`m8o@DjFeK^7q(i;Yc2fehNPNNt|=r(Iaqvb=p z;ZD2oZ*vgZA0B_kP#;A)!UoG{FVD>6+0%YQJPS|UlY(k|YnB)SN@`PC~ zJfUwttCH}IcV4NguJyLw(}kz6(#+U<6{)BJ$G}gG3;$o-mp={g?%@_uuS$Q#W4%jh z`&{k$0f~L7-R&#sFXwJi4dIKbq1=&so8@W>(T*Q~^#B|;AW)J%A?tufXzW?tl74yW z)l=UJ;Syqa#H>9-aoGp1Xr~7MLHs^<{P|tJt)z|f-Dz`hBBWa9L}NCXiwTv=A1Ju?lsN}DAV?E2cd^@eXP*l1$d+El5(Tn z3~=CE37wuB=6UeK_CZ@WDox92lt13el}fo*?W)=hc%bMih|*l`s?W<*R6Rej(7_sp zorQ_b!bHI?H?OyI@6Tb{4&2e41!RfAc{IwM;oBXvly}=$3vz{~Ok9Y}4Xl0LPdh|D zCR_4*C8DccLj~o!3(B(ea(YNNq$0}?Nd<#_*Cd$ldQfEy4#D?RAc3s^;5_VPcK_v8XEDH<;mOp?(O zt{QKxiaWr#3!pm}Qt+AGqWxgcHpOA$gxdM~c-qfU5~Ae| zCBRF2t&DEU#8}Tf@CN}DHz9Jb)`{&BSXrIdG(xc3akD;G>Wd7lQcm)nJ>`I8Cg7yIyG!+H115$G02X01!a2ptrukRNxTIc z8`HcLiAA@^sr)5US-|ovypCaPf-7uL-4sMi@^Y+iGCW|eh_SHHXgTru?NqcwH?zgH z2zFUK8*YMY!pt5Nf(KD zn^d~}j9k!VP+8B&@tEKOS_Z|z_!^A4#az)!Gs={+E=%INpbG1vByYwR(tp|%Pl@o) zB+2;{gX!M=R?h<+j|rV^vh`erul7Il$?P0GUxM!t`o%A2Cg$NoobWJias7_c_GnvZ z`hq-hulVY1Zvliz5q_RM1K5#$1ci9zz6EbVykeTNBdB>JUdz`;h)kh4iPy;tymo1V zK@4c_MU8vLkWLB0DanYTw6z)Gn&V=AeOylfI$3IAL}xG}idkUvTSN)aqma-jI4S#| z9kR6k2Z9{IfS>0>obc%5?{^ii-J&Bl^#p-3@bsD65RG6O$$*~_&43(TqDb=b`VT%{ z6`2nDG=;fa{y#1Pub7_(XWd$|6XEqt7G7g4yd%8Q%Lp#uHWRO(*%@B{f#MbUwd*N; z+7@b_*GcdGH{TX<=OFXO<-l`3UTFr2qnP%+m6ij4K1>c|;k85cI8^@Km>7uhW(>85 z4Dl90xJ5K}gjag#e=8HO-;CpJ2yXwQ`B3Ijy_Q=-WHQ0$*5Zi-4> z5P!%f2o$#a7%n0ZbwP9v3bGRU!?BG8nhW$gy7D1denATffZaD%tJ@tk(NZn{Hm2BJ zp%cY5fd1c%*6{t+|GE0UWaEDawZwyT#u(JkU)rMSUq5$lEz$ZcnqGhLG!3e90#ogb zo(~2&W5_tPe7_t7ct$idXjK2zH0uFt6>Y&T(CTg2?uc~f8N_GDrCHQI%q6lw zbFK!`Y8w6bg}|Y=jKO4H(5|q7%8JVx)M0Mk)t)3y0kFzO`Tg0I2Zar>3QE#9Ls;XVeDy?6!;Nvw>>POQh#7+T9u7t+U*> zbPX(~#l}duF&OaQvR@__`9`#wq*;Y;K?}AYMtHLc{W^)l8Fzs<&!^!KYftQ$NuL?S z$+!%grv0rKPy1oH+mDi+k^UZsE|+uY5;#A42xaOR~ojkYloIifhqmkK&aNhYKK#KD`+HY4De@P89>U+YcKOUK(hCMCPCY zhrQ2MzThVYUSbfPXOQp5*339Rh93xGU6IZTq9}Y)S~z`rlL1>|Q)vY|c^abuW`SR# zb28VZX@EgBURYo|pv5sVCM|49_-*-Dk?TT=SifHQ!blX^5F`yH42%uRpVx6Nih|mNJrDm+XnDt|&(E*HKSwjiqUpT< z-a^N@ z^mBpvkGajezPqm9>GhlV+)A(8!KB)*hfxAbe~Hf%*Xup&G|J`1UYyK$M>Uw40@0E) z6*F(>lFplXT`_XDWb!#(mQ+)b|3@@sZs3JQw@`4Ob_<4zHH3&Y>A_Le_FuQRQC^?$ zXSya97BqvXDltns&$~p^3{4}ZR**=A*Q$a7=xp+;Bops1Xu3Xl0xUOt{|VjvfNI=9 z@?|+!nNTZ{PK>@V#m^!ctjBZ0*rhhG`z$l#Fs(5d-I#yZbvo2d*6P|cdI_WMW*p~V zvoyLaFY%h+tb+RjO&-YTf0iW@)OB^U0FYS}JT5+WtI|rh!8+wS*#d$-LV&plXIwJu zb$5wR5gGu5xK+>0)m{n}E>1JBA#%uQ18IZr7PXGQ`>TocqMO7a72B;=UAqE@rf%eN_iJ#qTJow@uT+I=nwiVR^2);n zzF3~DR@vsa&g$NY-=!<%{kx#i56wmYC(s^app~zO z7MZD5X6L6Tr9$2+8X9l;tt;}HnRPAYZ`w~|_{Yjxzjgbfoc6yua+Bhbm-mg{kZ64# z`pu5`m8L$!{VvC)vh{Z7v)9D#sD=GY`0lu??!xyYFXEd<#^u!)`+~@ys6HRMD?c+T zRj#|3AIJLP1m^-xF*1fqlxCwXE0~V2kJEvy6An~636r9t=-BJJ^#g)POrgZ;xIF92 zRzFCW30&+94lKCSb#0C{$!6C?JxA?zi?-T{r0Cb_p~TA__IRU^T9|{)$H9iutk)24Y>_ zOn^Me-tmxXN`aiH>@Rwb$xBBxxzH-tSEr{}uUM@UP$G53_Wj}5HYcwCQJ86jLf_qt zpb$&|;y~TCV=u4Ocu6h9Ylh&vn#10f%&M62Za1;mJmX8}vvMdR&(QV!LvTEtCJA`f z1`(XgBE*9UAdhCDww*zPug5`;t+gm|lVFwXPtPl0#`tc3IIsI%{41)|6U|I6VzUmP zvRrsVR6fr%BbDt!|C%Xhiii3P;{et2o{Xz4;A6ObwA^X$&#;H#yp*zFvXsv zeifm4G6AT+L*a+4-1;t^r}!sDgy&srlO=pZph;>U&u3Z+$FVqkt@u}QoQb_Pn)hJ8 zpUHefGF?LAeW~0I$+xd(w3n{MDktOR`XeV@R3e%NAW5(*c46>RLN?SvyY6LEDQ2`NLyi-4Igt@n z@uVN2B#TKp{O@cEVi`~Z|CU)uNi@e0;C-1^bsGuu13@663n_6n6!Xt+0XuAlBORL! zjoBw)OJrdwipAv#_o5S3eV@q>VFxUP)?9}(Vi$t zz>XMH-%3V@j9*)k zdAVMe6}vo-<1-A>7TgrDt{h(q>h%F8s+|!!=#8>w+lnp_8OLlGxa;NC>v$sZrso7W zfU#RLe-%2X1)bAJMA<9n2d;2&S%fPU(RZD)Lokx1+s+s#!=UxR5-NO^cGXOsH8q~6 zhQv}ZqDS$`i80-dLDQw4IX}j~6|Mc)a!jX=jjvGFFEGyk3YuRt zw1iGN*)J2}9fZqX{H#v==dg-V3PGRec|{OQ!1zQkL{&rip(vunUl$xpA};5xBz`nH$@o41zrSc>>tR{&Di)Cj_sphc*L=N2<|s7$H<$_;;P9|iLxj_pG*U)t@Folmr5lokwuY>QDn;?W@1Vo*nG z_@5ZTj9b#BIk_ayN&1rIZf(t}%ZhS9ajo@CgD%p~D%=XqT=~klW`j}FOVMh-ew^)A z#RLel2o!21WS!sOR7?681NSMH2P8Fu3KG|3!fwj#z5`w?@z->@au@6?P;bcP*T zlL7p9j%ZMd33^ff0<7@YjBl;BM_bl1vau>} z(YAF_8re?${o!k0_(Z$MZt=)X85!1)kMrEOSv{c@VH&_WQCp%dqhw~;Ffe+OwOm`+%c{J4nG5*OsqriHykDL)m9^WKKG3z z{(a4eO&i-0oZlh|SVFx>;r^DhC`K`hS+sodpG451#D4|vybAGl=zH*H@th=Hjh}iM z$0c>XfY^; zEPObf;F)0k(%*9bE5MS#8Gh$kin8dPNrnsKZ~lR<4VxQW3(#rzy^yop9#9`B@prfa z^!=sT4D&H;U^bcU<BMI3z+@h5ewEKjcB|7pP}lR#gOfDycez$uekX$deyp~MMHjdb zHj7mO?MLNl*eDgFYtIi*YNsJwGm1rHlL~h~h#r6|8m~Q<0IgOuo;HebCrDCFH%9TM zb8(O&pOOM}DuN^!T+}NHhS5l(QNJJi-hUDBPWXY3G0h{R%>!Q;#KKP7e4ij(eKlr8gs0%<&B@b+M4P$qQJCs} z%@IGy8za1XEA1eoHA;#@xQ>Q6>L$K?%)x5>hf*tY?hIH=BtXNcN> z=Pd3yy83ZjntfZqQy7YXL|84gBV}qc;Iaq5lqbbFLeYw2ZXdnARQIy!$zYD~EAK&0<{B zW}0+NiDpXkh3`kNOxOhbFycS>F=|PP)OM|8`ZKq_dStauH~)8?u2&ExU9-&d7%STl zp04{h>#GOpJxQz+p@BEy2`#2qqm8hIg^+CyWUK#Nw03Gg)uRt3J@rg;cA{3byGKb! z8K@i*q)_$Jwb&m-_}6G?HfUmNSXy2ZmocSZ;c491ljXJY>>& zuJuh+z+q$CwVM6jfjaF`TP#0IV@9R+LEr}x682LK?xqluF5&*uu?ErXPETW;y?rLu z<`565s_tiEjWSeBJ%pQD)M`7zMYygepw%_ptGPQaie7>Kj4h|@OgtygGO)&!l+lQI zKU>XpHppJK9wbE_iI`_t`Yf!_xz3VgVNQF@l?(eriVa{UQkNL`Umi}ua+R!N@oSRXf8HX2y6fa;^pF~vgK$_7` zD2`H%e;Prh@X8xLsIX}#IqUTg=Z{xK%ShuDE>@LOpL~d>#5n3 zk=XCFR-7t2w(YCp(ZF;LlAPL9JhzgosNm8W-s zeiG9@wSm9^7b-gDVUWh1l5Vq48Y1z-M&W?&rnl;m<-R7CO?n! zoTOahO`(~i*_~!}VL@Q| zGSd8h^F{IduoA`Ih~q z4AI^wp$}B_b1vRzgzGU$(KL9_22JZj2`hq?o>XN?)Ua(Dyg<|~^LYdpHo%Hzv1n@2 z`(x&VOzoba9gCbt>%U{Z^|G5pG>C~Hv28DqOY!Eg$<$s*4@n@_54J#9ky~8gPooJjYEz?&Z&y8BL=XX!FqS;q*yDVaZsuiNhn7c>{nAcG8FbS=&Yn*TDCKNZ_B1U5Qet+JY`Xq z3K;6%=Q^kO2mwx(FDUo(OQ|Le1F9*_5E1*%=kV0 z5DhKyYvYdIsUHj*m88X1ytW-J2GVpz_Rom4$ufXOBhp<_2CSI|frbAc_G<0nLlB$+Qcp)E*pG+r0~l5Y$WsY8RunkN&+V3J2(brJo3s2w;WR}3`- zN8^KsGb|?G5KQvG#xC(ddssp@Wqh)4WSNX`JQk(jooO@5La3MR=N7qZ25kMfvJk0Z zfwIsa$_^(6G=)$-^Becz0O0{$L-m8H0Wx!3GUl(Aj`{P;or66@v;D>+{;*V)bb>}i z9f{35F5t`0NWwhND+=G_IOE0t{^F16`$bOYiohXtZjM{v4uZCL1GQ-y&2GnQwfi9C zaO)`^+xaJ}uyd4N*OQgD((7Xe0@y0;21aecQJyRbNBNF|=mpV`Ct#Q&!#yEM#+;^! zhHi_ZrmMz;q~rl6o-ay5QRZ#lAvO{0f+QA2xgiJz^`5Ejd_kY>ysYQsDo0PetYwxK z4mSW*M+9C}gcFiXs&-A}OT0KO@I_fEOe(6WYIBmPYKGj>;cG@+l6b?AnyRMiT22&9 z^&czy*A5++l5BXZD>Zt@k9TToviQa(qKKatuvUE{zORP0HTx;#J45q~#YquS;!DvC z=ns-a`FMyQQ#}n z_N@KIVy!ss@{z%`m~136o~~*FTi!o zvh>L`Xo8n-*wuwe-kpX9d=VNlUEvF!ZmQ*py8FdawOZ2LIcNF}gOCbm%$&Q&6KB0* z&4PAS=VjBAw6dlVeyUxsHmX{=>2TxVnaO%z(ep)qZ^ave=R`XY>BI2+hBV|Y>T<}y za}=Wx2cm!Z@cd^Pcs{ukJntKkpSNP91O(u`c^CyJdeM zo^ouA{-Gcwz`1uceEz;bV@?D34vvIMp4#|}w7%gg9pB=349gq__!MHjv+1y&8OP`~ zzyq%cusTBll2v|hX)g|@WHD#zo+-5|_6)86C7!Wrme&vfwHLla8!ZWYjvn2^!jNLH zU4iirb{dbZNabLNQ(_49mF@u7_7Jgha~!uTAWVf$h|r2*P!!{`6LGJP_mg3xpsB1` zwwd$V6`|olYd~IC0JToDT-F>-1zhi$Lfx@6V^>;|>0S6y(9X{z0zMzKReJHo7cY<{ zQll|3Ep7$Ff_oHDDM(Q9(IaI zbfO%EJFpAx;A4iu!?Q(s|B;?qnsxZ%wEdJjBh=P;1%11)of1S6KdBSk3G|Z4q}!YPLDCUMG#%wX9`Ze>8xhWfqRyV1d$K^BY;8heqyi`1vrR?_WI*1OaKoB>4ep zM+9vc@wNo{iq@1Mxzlb$l_?|%YX|oN@Gi~(Q+0H~mp-kw@4RUB{R3dxqvY|%s_fQ; z8J9X1zNtxHLP&p`=O4xMk81OdvHZfqtk77T1~^m$WQV4qKh_Z@ro*viiTh_7aejp6 zSN&)AAq+wokC5FoD-760;xc&j*_yG$Zi-gSKANbt+K=^PZ{&+C)r?hva4Y%#}nDYm%TrHx*8fbm_w>K3BuG7wO7(%o2_H>+gZqkIL1; z#i8lHjm-bYcZ$I84DTwMNW02~3p>Rq7s`rde~eg5$%+JPd&2|=npEo%|E~EFsIUM< zK)Sz~-%3`TV!~iHAsYU2dap7)1?`=iEs<#$#{4ytaTs5{Vx%iMW{Dpe@;;wb%plw4!FbFy-NxU!N2AO=D{SdS7PV5+jE!pA4IXYf?eiMZR)r z=4uL1AxOTCT2K=gjifl}VL>iQGA|WmNu1{uNg%QX=bsp0k6Yn81w&dA2rr8hs`MLa z#+JkHvzXL_U?biZ>SwKC>e=9p_Gpl=P!)_xm9NDWwU5WtvEPX+Z66-Bt*5C_p*oj9 z@K_K9s-I28q)l)`7U9I(4m)&g3-RLt-z{^;x!bvSWMZf_1VQw;J*p5;G7;GyL>xOF zz#Fdv4->^0SyTww2p&MEe>{Lq|M*w77cPI0!Z$~2j{Eq<@$*D-)Z7W4Mjs7_wEM4j z)Q-4cVt%+^qCjHPuGub$`Dm7Ph&SR4ThAZ!K~z8kU!YMYABOl}6bH+3U<1yeJ9Io(ZxswNII;@v}?QlkM7X@Up}c zy*o_=d)~C$(1nvxN?y39#$t`p$Hup{&Tr% zNmrztTQr`~i@H(L1sF=^?isgPo4Q@e1N#COTY9Nn(nP_jt&QK-IKOtc@}q4rHJ#1B zTE&EP;+YpAaU2GX4w#P=}`)5*Zg4gUB(P&K#Ab`ysVYpm@+v#{yGF|-+uh3y+YY`~)kk$6oCT0QJ|7&eC3 z3uF8EvQ93-$H&+oPXhiAbjPhbz{oznL)5KzDCO|mqHkpT_yXCM=XBsD%=RLO61U&( z^#e&JEA77bGM-Su`q2|#nV4qssWA0??)g8HWF|)SuM~+##g8?)05`bU`)zIs?Y7wa z+f-;C6Ox~yVxGyyh8O>6>D_L9qO6jcT=?-^Ue8fkxcH$s7T_V6)M3#um6G`Up1^&Y`Em zRiY&fe$C;lCNQumhp%7J4YTa3s%AE3ZKrsXoQH8UFG|OvwGC>B5A+-L!9u)|yMucR z_pY%#NV|or5j{;8i^A<4Q5TKZC|}HCR*X^@JQv2Z#p0E^9V&nlF-m)bWPU7;CyZBW zl<0EtSdh|Pd;COxEM(`dC|v2kp1}F2IBXXmqvQ<<$-CS!N(pLu*Q^N611 zk^IU2oEgBgOf)|yR@9R)sjjz#b1e#;5yTNGAv-1~TZ)@g=2j+*y-Q8GIH?xS)j|8M z@s0g6WU@V(H!WeJWl4@B*F936tuwzc^_6O1voEolHMkTEdm(6NUHp8*|DM}M%usiw zg8mAM7C-_5*lf`_UpnjqfbdJQSTH5UFyyi!s=PBZW0)p|t2}kynXm8!JL(heEMNDu zh10VK_kzJC=p_TX^%H6ybazXUl*e0M zsDQ5V0^L5tt9TQ7&T*PPQ%Ie29G9r$G0h#sm3!M}dmRDd%nYy};rW#nJ``a4lcz%x z!eXYgm6b?B3aN80%0>4*824wxEUzqADP76ILSLfVKYq+URcj{!ibF?!} z>YeEa^ES!lczenc`8lG=xe`5{v;@9IG-Z!yDjMnYT3#n}4`e1eTlU`z8!dbkTHJ`6v5E`sXalC&<0>yl1>z!KlLm}>A`2$vxU%YqJn zlDr{BdGMRm4?WLy>3qb{_Is_MrrBy+iI)4)T)f?6`RGnIhE^qAM;L!IEEp|HVV=`C z%I+0pX+xGMv~Tu-hm8$y!PzKyRa`~{cxS{RlH8~2uaB;FXLJ}<61xC+Wl;`JP0-Q{AoO-ni7C&?1ZeJE_(1p4WILhXXy#n zkFUWISz`}fPvSpWC+uyd_4QKtD_pNu!#ed|k;Uo%7{=TETp6R5=gWD1i9ZU%0Odoa z&bJGs4=p`>^7vxT>oj;nYiR~wU!J_`bocb5b4T{bwf@PMAJnu$K~wjv?dzWI`r|m* zQ*HX*S&XIty&j}iC$s9-%x#_h7et9=mp%XquvE-({8@=Z~2!A_M%a zlI{WSt=yxrI9w$twbU8B)b2PPrwNSK>~`9%9*9M-E>}F{Qb4f_3bf~f7Ta#MVc>;L zLqSAfeKa`fALaYFa8LBGxH0~?k12RT*n^F_((f&ajpvx8srj`${Gt>!CMVxx!+)jH zBoW0qQ6Z(hwj$00?nJ?`O^h-ssD-?!sitA=vkX(!#5`PqCy8krf;3;TO6X{mG)+{r ze7?L|&gV5n)HDfaQcBi=qhDt+cQZ`TX-qE9Fx0J;@bgDN)zkq1o)>ZQP!$EiSXgx@ zELA0-?-`(RYnq%_bty-Ps#+87>VhGH25s%xzi3KC6IIO^YtHgn&U8N1kRglkt?|HigAT}FlZ=hn$<{YSEjdkk4 z@Zo!X*D2F_JD}Fc_haYwtXrU$RxC>(7M>Q#{NAP{)*JlHp_A9Fdd9vhD@H}qjrOdn z3As{Hbjr4nFBTM0b}P|EQF3few)N8E27QZVYWUWQbpp>(96aanf^+QJ6AL+~bJcY( zo4xSQvT71XES7SDrp~q}57?TnSw&fmt`!TKtl4D)L}P3%70a!4I3rVGS~HHHcbs^- z4riTKWT6#WXj;n6P&kK`TU@IY*4DwgT(qtk-d;D60de-Ab%&4-Y&O+0D`8QQE^;xxPQw%$^D)`rgnm5 zYpMN;8wN2A*@LAJ#1;+N0~ZEiM?>~79KiRKG^=jI${XU2kiQ*HNiMjEW)it%I%3TrP+yyKf+pX3dq7LW(n^G2$~(})LKD7t@mPkR3kPzs&q;G5dBXvlt3lo?6o4q>%(RQXXrb5j<72t3={Ab};{`d?}&}W;z zwpS;Q1J!4G4W8zw(fLMiX5hjDd~InGu1+r1c$OX{ec=q?cLr!o6TS?2i+|z4;cp2p zEIBjqIw!JS+1yK)JIbBpUWqe&ls3>lpFGe$pF+?+pFV&G90%c62W-I(_0aKc&{Gu$ zZed;bCcL1}kg(DN%x{AQi2`a1%Z*ZFS+Eh-Q*eS89|$fiQ!K#W;x<@-3oZNs{4o8F z;H75~r;Zc&wGVJFa4zOi3D)M|{B~Pmvpir4v5Hf?AijXJq^_s6TtS$y-d?PV)8wBD z6~)T`S5c8la(l5V8rT&ck>1G{r>e9YvUO!>8#vq)cNKRJ_p|UN%#y<<^p3HxsD7{2 zRvOJd{dTiJQ;2w=^cQ#<;l{6mS#}WTVUF=Q5utPr7KoeiOgDPQJDB~N*drQrnrX3G ze7iLv2yRQSxHuK834)a`h|ZUZC}2#vh_UI4Lcmx9(@9W+(?eiJk?_6@7!rsepvPR| zVT|a}iEDZnPx<8Cr@`iX1d(Nk)y1}40#on7>qM_s`b$|6cuf|u*tUWb>nctu@{%YS zYT`=9GXfd+AwRY#pii5-iF+6K+3hH#v^ze3^j{*h`cG4TRpTw~?RsJQUxaGa4}MTL z%?p>Ac2tI84yPHgxsP(kLFc*-uDEi6M^w_%tF)SEe!Ex~vX2Gf zmvLDK7OU;{6}f%jVCSF$wC?nX1lZfB7>ZsZns=h2l9H~N-b}d&*8h^I++Y>!jx0-x zQ@8S9?#_5>fe^cA6H8U^e;Dh+19UAwQgIG&sC~&$EK4!Iq$#2x@%u#HCc@3UOn^WV zDGD;bDUe)_2%9`V!3#v?!@0>oMzyw~(cy>#9_4iYJL4Uhu@wFk6tB%yvKN#pN z9M)mFk-G(RKlPoMVICZT_OMD*WclI7zGJ-^9fewNSjUz6-LV{vQ;rO^GXig8%nxh@ zGS&1-g<`!*=tV=|ix}%72t2Otmh*UYO^5OAGGuPWCHZ1eKfW@n1|{POhh@!nJCAPw(hR;b5rG+`N^rA zRTd`sxmtO$F;M};3iI_+VFHX7`_4)oL7AQKCKd4{Z<%f#SXG$y%2Tqi&KGmnDqha! zk2fUCv~2#QU%%*kpvz&!B^YgiXS=|&t#$_;dEF*X)_Yy7Dy=lp!M9$PItx}ISE|oR z>o?qRy*yVd`}XV?D#FZE$tz7x2^DdnRr0v7UhER+0*An6c_UUW>6Tp& zYoxa6SGpbg9fy7g-H7mqaVq^KKF>=DXYF|NcMG#b%N2MH{u3u0RZ*2(QJ9;bpA)RY z!6~V}u-t}0zqY(~U~=-n+H&pZh+Wi+NH=OD@hZ3A7T@E_{Oej5yK!j56$D$t63nX$y;85=Vys3%?XC2 z@&|dv)X0oai|2tBSOc@;BGDa04l)VSqt(WyQF63or|dP?=Y_KUsWXNy9DO+m(#d_c z?Kbx)GmqqR2HoWck)MZ^G4}e|-z&$O(|rH0Ll#WXz*Pdp?!Oq1T3rW_lH~CQ`k# zgSEs%mkb~p4n1W<63e!#mK;Y@nap8K2r+&F8uoocy)j_`i6{r~wokxaiXiG_F15b?TaIIil)lP$ss zW^yI2Li6kG;|_2=u%AzG*K)4_S&RMf4EJ{Ko!kT5L)=HWN9d{w%)RIJJQ%1H55zo- zQ?A#i+csWd*ZUp3GED}qOZ19VcKWTpwAxi%#gpjorCuMNW5*sIgUS*+j$esiU+J{v zWfJpXY{HnMX{4=dAfm6=bU{`3s+y`Qk7%l{sCyM9FUx?i+)zT}VT3my9M$LNQu^rI&!0CTzy&>RY9 zNXa6;RG{z7u}{)>P0;sB^o_9>R%0*B(HC0ug&J$5O)t6hb|v3x8=km}STyBEKgzV>5=`8fi!8Too9&t0+>$h`v zaCd4yTCMi}fDpAMou3;;r=CAj6vQTQBw3juCTN z5(Qap7K@Eyu~{lL=)nZ&HGU2vJyZ z9?kS1em!FTA+c34e)jdX4E|q_UK4vh@YPMg^Lw~^fvdSrB8q8?_1SIEJ-Ok$ zEkuu{V_uz~t=bh-kaA7^r@GA3hT?H`otrBb~)T`W#d+Bg+$ zvq}Pzh?4+CP0bg292ZoxSn^M9d&JDuUJb|o z&i_KQUfQ5@4Aj}`f9MubuIL((Uzu~%d|q{O=W~uy;1xY5<>aa?7IZBq=Oj4F6Jlxt zoX8bP%CEsb2meg?Bc_~7;C2c|(|4qCtI*7|ET1FV*q0ii2diREDqyId?&1o;y}ORh zQ+s7z%44QTV;&RW-f<~#S>av}dPx$O?O12+Ut%;GhmbFESg-Cn0@vBR$Gw*VZ*yQ* zJwVqCkZ_3i`eE`)#8X%s{!+7Ih1N1Pp{XWDX4ZJHopuM8=O`ZOXYQNA_)>F~t}0kH zF}!w)|J-h&){pT*+`gPU1^xRz&-0?Q)%k~Xk$NM*QQ7=1CD>$u;%WZvkan6tmF%L@7>bDIm;yQ$bKRy z^n}r(xYd~RyMWLMhF9F3E$FIcsd~ZGWZNYL#W{j!c|dr%WhsV5QJ;^^qp&e%39PqQ zV)V~8$Nwev0#8U5`A`sU72 z@`+(GoK$y&iCezifj*Y_AkS9KpUTbBuF})(~@~aD{OdP5Ouh05W>?{z&d*d zy>EgfijpAH6MC87TV(N)JEXdd%kFR!b{nrgI+G)6zGIQa;vm`qUB^5psemzusT2x7s1C|^+xT1FGzJ5QGb zU_Cus)u|kK@yEbU6QJ=K@lj;HmFK-auI*{Vu*ze2`YsG0M9j}t1ns6Pa}7_t!)!LH znqF#*(DoF{Bv9u8y(0I+jFo z^FCVc0EQ9?M-tR-YQmE{97yDhapa!ekdIyx+q4cvMiJfK%0-C1Ya>)krin}IOdMEY z%Lm6hlw?+f?c3>l_<{Ea{wam7qiF!2U5l$O!8GFO+&V6jz%WiQmHHUG#wOg`o)e%o zc1ez30&KUh3oRww+W~$|iW`cH_^JO~cy8q5jb6vrpFJJ;QZn)kE^?7r@mpg23jn_1)v#W?du7U0I%ZC zV2ob;TQcZiSd_u|FXv3OVV?O567#!)B}c&&8K$FRh8uj9Br)riS+|+J(gdy zd#H`!miYlcaH(YYsKfnkiRP!aANzMp+WzGT%77Hp1!h4PI7xE?B~Y~5^Drt#j<5(w zT}{vcB_&bT&LnUo#G)cwi1{_ zG5M91iJq&pgN2ywsC*_{ zj#8EpUl{)uEY)PYvfK}Dc{EQ9hG8A00e?;T^JPz(**7D*<#|Ek6@wNr-w0MExR%XU zVY2O0%=5y6@d8I$A?42sTLvHS?P41nOE4(Dmv-;=ni)J-z{>p{_m$@)< z>@7d`ul{ecSyXr}*X>T^mJYQrQLGl?1lQMMB;6u+0!G?9X+Hg+mCnG*)bN%UUBR|0 zvDRZo8f6uiKvJ|8Fynr@oOgO^_xTVJuzif-BF`?YvDV&PZj?(R!;9ybdnd}xvOTrX zR2h1WlJ}&K*UezLA#Q%mF!H~!Y1|x}d;Si)_%=oo8{Py6q&PB{S7zYUnH4AYwJ5Sn z()9iQ+6uSuy;3x(9OEloi(ljBxh1X-J?)J&V#`T0krHxBa6qw&I!U+ywVhf~!d4PC zyL2sZ>~FQVarRuqNt+CB=L1%vt@|1~`^5(_0uwjJSegh;XIMN>2f_bo@VzA-OeZwEXU~XBi^SC7A1D3`xHk@yxe;jxkiglWKe{ zznou!zx?y6d;(ttoAtG|Gl7$k?tU$~(CU1|D9=CdhbK@CZQd{fj0N#^|37W-0_8|{ z9fsAb->V<03ZFs&-Dse@(Ez4rdb+0@jYjwUXLe_Q*blio`{V8oX_4ZPT<&s)ACVl! zup>>Nq)$R&vZE zEpzXC^?3yp&^;@_@4owa_r81IAe7aWxR>P~gnf`dFx}cgU)W3&Sr{y0 zqjv|C-^Zz;V-N40w5Kn;zv??B)}wcW;dqGwy5abHMZ1if|H^jpDm$|G-{XyZOAZJk zzJWHSEPf5{8YpLx+6)W9sc17ay)mAHg{wtz$taA04nJqqjB5t`XD?(WImMT>Z^athyC{{@3RJu#R{Uk{ zzaRaT8RE;AROOm1UsF`^3*n;=!8HRuiuQWNd12#Fogvxh^s-QXnSDp}Rq`0jFC-t} z3xc2Kb9$K1Ig!^En|Zt8(o%Q}50`i?2eKBuhr?^U41<`CJ3uki1`!Cy!{7snBYNL)ViB;lYHU$=*dEjj22uf%o5K{wm?vG(MlD`GY?kst?~9`47a_xucLWIn5o53wOlliD;lRghejr zXGf=TuzAqVjHNI}#*{I7{I4}igNfl9+~IKLT)LAniw5h-3Hg-DaYqWkm)INMPZ94+ z@9|2_fafyX(YLk3G#Zw?Wt;nPbynPPaV6S;eib}M;Y7{F(nK{edk+!^+FdXp3D&4opxs>{o&N){IywxyEgRbo)$ z*o0_g<>3{g*#&Bl)n#Jte8u+t(DR>$m#XjoxvLREP4MFkxYs?rcIfDw;}nQSiCQeG zgleSVICIZE{F9}6Dfu7g^0PV`N73er3q(XMp|NHYZYai`uiXt~8Z4N`Vnr=-RddlC zzJdo=d(iQ*yt-}ZRJ&bB&h=5*^VhMP3^n5 z3)|5D*to4I$^C^Z?2Z%xe)T2U)UFtKzjhUSG{yG3^!rkYS*~2hv`BWF$D~_dHf&vO zsp_BLO2_wJXI}U%ToifTHcsfK?8&w#~<0rKvWueDGYNg-c!fAt%R>IL=O@(&O$u_fYtgWesu< zFxiRUhR+S8X12ylk{#R+tC6d4+pyCTr48G-N^RS-ZQNe-247fvgW6vsd?{7HDPVFk ztsf^oK^e5e*e}{;%WlFW$~SIY!Y6n(-{KQLDOoQ~H~w)^Y|;~BBeIX`%86o-5P zHBsno;Xy?k{OOk!?S=)k+lbcnqDA@dIlcuXEbGc&y#cIs$>QiGacQg{*pb#)4ff=_ zhaAluY7TdB(=LjipkKThJ!(y{q6H}qkEXn=`c_%{*{fIiqLUILrEww9RnKUOgSbbo|M=>Aoj4e2Gr#eb&MGCUC)(|ET zTlB`(^SHvPeQ~0`{f9Mm1KEt#x7tAC0M1sX)Ul6iz8;k}q!XY^AH&r!ZnGs72O^G7 zAQfg_my08|GQf*Vg}rW6Z6T@A%@7+>ogs!x2w;HeDzCt%>Z~A|_;!)##3QoO#7(Tp z3DF;^$#PBBw10vJI3sKMe;>bH&9@E6P79^3T~H=s$?gBcaNM6foGyPj8U&DqVW^K5OcsN2CpFz+3j zt9DkaCB3s=oZmR4>DuAtqU{%73Ra7T-&!XnvvyQg4XfS&xwIe}yBCV9RYg|RdZA?P z6+P1|*}WCjS?OA;+}yaVg06SW0&&}=QfcjdZow-q`WstTwNPp;sH&{YuZinc6ewfk zuK6JiX>ZsY2E&jJ;5CHzH%8+>-#W&B{^hY_8y||!BYA_hUP4@rLL+y`3hf|07@hQh zMdk4nsdWQOw7W)a&Z(HCpjdZ{&AwjHP1`Ekj@8_5RjP%#h2lc1R1KFJD~;xM^A8HT zQ!E=nF|G%~;!joZnXqOl4oLJbs4|aYfP=yx9rEM?xX>coQ2||wA2WD<+@K(JOIEdJ z6r%F(o!VN-uNAPKtml>dpjIlnwoxS&yLbWMqYP5AU{K4fhhA;2P_4AKn*ikMUZ-3M zT62q`rYfp#C^GPG(W#TF8$Jb~Q-(wa{v)gd@GST_a}MqZ^7`7=TK&#I-aJyTADPR6 zHtoT&0;78htN09$ox&o+tjsX{3mD*0y_;SaKL}aI980O=cWv?-IB4~P(MyM0*eayE zd`VVy%U|(9G0TT*b22exOaH!Z$p(?bXZu}2!VkF_iw6jIG&<_COv@u~H z{@++!DHH%HMOR6ouy}T{0M3r7XvY+VOcLNQQFI5$<6Hn5kWPolDz$4)`&7{|2{HaZ zaGFe`c^gWYny7Lx^(2oQnjI) zHm?Wxm&Am*Tn0~(Nk`_PV09+Uc3dZI8ZaNHNf;F(ui&&$6A;yNys5i}iQ&`v-aNecVG&EnG+wT)7-4nJv5tj%+s(^;oIQ$4L6m9gDhl+g z*pCIxdc^__!0MDEoNEAQ4|`STLb{Ev*cMCX)OkZv9_`r|ftz7B43-vjOS8JJ7W8T# z02q~p&AMLd7@BDw+Gt+3i&Ib{^=dDCxj3i!e%&h^D{UOET|{zh?}f)KXRaC=E48os z&OSIIPyQ9_wPS;vXt5gh(y$63_m0dKf3E zykyiC%4M=(g2QgB205l%^QDC@)fK~a;P?DKpMPiJkfEuM&8gs@!!18k28?O(Zc?2u zsX?Q7WcJ62-#*9eK&gzaw7j$c71i1BCAFDh>R^6tKQ?G?5>S-Heip6HrO@EqwX@Y7=L2JQoip{NgY6ZK*29<1J%^dXQFSdK-tFIyzZ#|Wz|<2MOP zQr^zC9UDs6B@it98wvpQ96q<51JE*7D|pT(+6%YI+89i{EUySt3vB1>*W()eJic>; z(Fx7-c3c+pNL+X%CRa)(wDyMm@V}59nLY&;7FbD7{T;-8$0sT5fiG+NuEc!hG zdZNPsIi59w8YD%9+stojFR^9BrJFiD&;eldOPpG)KIxnPhE?8}8wH9}ptRs9f$zNX zisRo(YwM=Z;vVUs9~E1Rzx)JY4t;>Lk`;_kDze?Y6yeXG0|;M=!T1cT!?FX9`zn7F zU>F1OzkU_({%SIZ(BATs71TkT5E&54Y=Pza{LXxR`D&!*pK7#Pji**|9T4Ou_5(Hm z^7{loa)=F^Xcv>XSkoq+Jq+SQud*!#E)KH{!i0@7mRv-k0@4O0%Z+epX?Lus}64Y!)VuQj)|s|hv*o#7#cH%_x^Bb$m5Q!7y4xrdP^kbqHXN^_{1dvbe_SJ$@qZf@(G1&o10@+82w?UZ z4c9=l3r13&R~5e7mlm|_4&;~%dIPoi(UAw13b%xCtJ2bM}= zeRl`w*2l<7c0cfG!h2Hic*77=Z`V;6f}vAoDWa@X;1CzUhrE+T#lr@Bf=9F@V}l8> z!EDdg%8H_coox5kd$yumirHLgnlgQ#0V6G|9c(kK*{S#QM+%k+G!>oVvWEe8ei^$F zhhbSWRlivD75Q=B0exk{ZJMo^MlBN?mk7CG z4`)k@HH+K<10AMB{>uIWNc;#d8lfu7U*M>D49~~G3{aHhZT>?4T{19#vE<>VZ-%l; ze<{W>!5NHP*)+rWLNh{@mss1|S7un^jir(zu7)PO?!n$u2YRflYe#N}wsG=02!`RjLFPLzltsH1xt8U+)|7mmg7OQ(sunO+b8I z;FD!V*U&;z3`%Uu8li%MrG^S8woDamI}?6-NHujZI*4wnq0qyO$8U}R&KFq^vsp2m z@reCSC{O`gf^LH42=CAfU>#QA&fX?|F4Cf%&jr;C(jP9kDOE7u( z4QXW>nV$EN7}c?Hud%L0)9XK^^|H3Xs*5Z8Z|?|WTjvGd;qW8L**lV|U@6GA#8mi^ z(6b;rK3&j2XZNj-7eg`-LCn6RR_GqYUYD3uze(gG{T*ND#rrZB8Rq2j_%1z#@~EKP$e>=^2X3;%0|?y^^x|HQ9A zvSKp+*r#k+Is`nh4L;pz>AZB0^nmoR^r-ZN^bVlhM}>VM0YHq3rRotNNRzeI zZU;joA#Q^JmoFS(QOC5rBIfA#gx~CbEs_7OXUVpU6e|>!=;fvs%GMW=Tp^O{GkDf0 zFEBDS7|D|JB_ZP@<w6;52nK^u1?4h9go0|jwyJm)?{6e$zpkjq z?>-LFNY;zpZhN(;%jCV`VNX7M-(lH1EHEM(_oj*46l{aVgiQ;>b@nPa(qLDq1xHqi zCOZZ7$w~>Wf>K3{necqyC22!C1sw7utH6)TN(uBmu!8u$Fx(}^GI(|dJYy$3ErYzE zDb~~b!2Vg~%=u%w?3l;z+A{$nZ}09sMPGe%Rj;m`Tq(3y+HXg+6(qp(Nm zsJq9Ou{Vki_=0Pq7qEEnqN2c1zuU0Agc!C+lmB_zILEpCTu&b2J<)~85yjSV7%S>x zPjOrf$EEO{C~283HRAiKFsAR-YQCaY767oy=XFE1dq;b?udiBf&IMLQvkMCqRrW(s zraWQECBGb6o)cOhgb9Gc5vBkrtPki`=y+CG_Dk}FoL>b?=iF>NCj;`ZmqAAWKUdIS z9)tcz16#UTM52DdbkKk=m>@$ip-dyP;nr>RfeHp#--@Dv&9A@(wOA>Fhh%Gp zWn82o)+e4bs1?#1?bC<7;@X)Dr&bH)uvD?Drt5%%tQjj@^}S7I>-*?FTdoF}Y2XCI z4K{^qvaTrx9NJH5mTFp-samF{Z5vv}E&6`Zt!M_L;}0S_E`Zd(!1~Luu249y<r&X+Fgor08&1{jVH9dG>yt&RU=^)V?9Gv(e|5{ z)-WnLZu{YS)27a)Aovo|eB&XCs`z1$wE-1PHvt&H_dSZ@tZl7<8Eubr7yjv9_O#yn%jXVvqYTxc7LLeVyhp zxnwx8!m_X5vU>n)`f{|T^WO2q_AI?tv9rb$dhMVCfRWCvL`}?cS7N(gv2-Oe`#&^= zeivj=^reyqOi`&;D~i!deU)s!FyGCPsmGU;F3a;$LjKuycLso>V-i6qYTGdwRRWWL z3`$LaG4ZD|mO)PhndU-zz;Qo-KSk=fEbz%m3{GUZA>z=E&davBO>MJc+D6~BL0JR^ z!>tlCFi6!k3W2gVjv1vX2ES{%wjslhVY_C{@hh&Xx)t9!l|f4(8Qw1fPuZD?2j8Y&;{r+Dt3D; zDLkc3{wSC2P@sZ=t-tF?ol<7>8@f_zf?WwzsW_^>p{XK~@|ofZHKmDHD050ZnBkN) zRZnQ73g=^UYnAO=%hjP6-^~aY^rSGUB)STx@^YRo%?aK;#}pLzab#+siJsvm4)al& z>mn{QJXJo4>wVn1rmD;rRVVe*eQ#Ya?KI`B({l2`9jm7$?rwnF7JD0arm4`C(KM5A z-%O!GY>om~WBo4di*XmLQ-caBq`hEBhv6{9Ky?Vb*a-kt+RHAVv0Pyc%tpn{Sipi3 zrBe8Ap`v{G#tZNNR2Wj%*FI*K$%@nN7U>b8%oM1cKxHkM44q;G;olaD#lkc9eE$3s zBiB`(<&x(*fA2ZZH#PRHw`O6-`r=;1q>K1lvh#%#Q%7^^C{b>J}zF_c4D0K!t$Krs$9X734+0CWkF zU({9ER>S`UW0sHFos8K8c6Tynxkyfq*|S)awG47S1Tojv1}(xcWDW3oG#r3#WI6#A zK--NIzfdvs2kB0wC<`C!m2C|JJx!zsH=YKSExx0u>%x$J8OHX_|M)`bQ)=1zG0k^r zc;f|H>@Ayc>R|0eYCE7vO+t#QLF)mj&bx(xxCZq}qrI{~8p{t>scI7n1N}^)_}_f~ zE_-A-u2))iRF^z=mtqvp_*JUwy6aeuM>T6zQ40mRRG+UYHP=>LWvQtyw3ljz>bVrl zQz!c};<10f^pRvQZQNlQ2mtJyZqD+^DLLj2I#!(n$uK}N^b$Ix8_3%0ajqW*4Ei9h z2irX1ZW)^h`J5@JC4ZoPoozh%rKec4_v;^X{pAK(SZOziPYsw?1$Vwmf;#AyBBsD1 z;V2fEbb7W*tKep_Zs5QrhJMa_DVZ-Tus(jRVw9-_ntJm!||St(d==& zF$1Rq4BCUUk;@ySy*nHuD(=EN;P715)VP_!fd-}+g^VZ1;-0_8SY#kS@GuCl-`M~Z z)3`Uyq5H0M{s5HEb}otcmkOKNgIPl$=)-w2pJ4hR2&(W>T&iC?sp_n}PqIHN9ghpr zBX=qd_r+-T&|I8?(*XwOOEZxZ))e?SRk4Q8YWuh$*+0yGiQ5J6%HJwnXYa(UGx zKS?f*$P)|xGiuqs4X`}pFIab(WOVVoIaiS#x7BhTxiZJVJ0_Q1({#)7Hj(?EU-us< zS9UFj5XaiBl2*73hw&_*zl6IBtdj6BGgK;a0B5eB0>^dtWn4 z<`vWabglMj+pIkQJORrjaK7sVZ+;uztf=Zqtz_vBxb6eGRnktKJ{dgr82B$sCr?YP zA93_N?0J2J(@J_Vdr*_%i1Z08c=$zlA*i{I$+ij0|1vxbHIWsRB1FSMMKHHuhG$5?3j4NX0V8&{A!k4zV}~v)ky%VexMXTtxpZ$B-ph9G|9%PdQC4#O zbe2H~MadVK;>eqUhD>7Hhh6vZdvU+aGd6OIRuiy%MqnKtryj!@qbqks8kymimc-e> z{p)Sc$DZ7yF+&CH>^FC$7-ullwrSRMc1&Isr3!+Rgx$+b)Gzf<1U2+Q$8(s z+n^U|cL#K#E6*COcNAFl{JABpa{sKe9z zW3+SPDZJ(>_8UYTr#|m%@SRV-`$=7Y&(sHhMAz{SPyb8`0mpHkAe{${yDHUwQ+Abg zo{|v2WQTLg875}Bq$<)^Rb5jTj?I(i)`|Y2jH9n~PF^^^EVuSfDO6Y9$+}65c-l!F z4)S9E1aRa0u?1Dr)#bgGynOt^$&{U%V+)COn`T^Xr5s0&t$hPt!G_a;NboDwsqOZse{D#ay zOWrKyUHpI2;_scfle&@A^rgIiR3t}RtnmXJ5m8=98R?@hV{eEaTMB30c5t6P)>-R% zthfx-t32^wxU->$?kC((_hgNlvQ8`jzN_eKr`Ool3ezIGY*J1Bl0x=~EQb!!KH8zCTWGXSy?+-uCub;ZCZi(tF;VAm9;q{pOn>AMV3$COI%+J@F@a5 z@53G#4y^_x7{42WPg1yB$;XE>0zjHb#|p!6$8M zS+s5I3SHC;+b4=rv<+>MD!MJDb*+cPqYJ_1R=Nr>d&1Qgc^TOa=a{H(9Z3)38TTMXyWvb(i4Y z|GsGX)|oS#n~9#8V>#{fAYu1SGbD$oq2h#!y}AOqfb1EhdZznbU1jOCMHZV}tv3e$*n<+=2*6_AL1NJD_9G%jG}|jBX02ko@{pI(*0YC`cYMRRDu7|$9n}RNcdm%S8U3}_IYYwv11{o3eS%DWjpKxyLhC%)b4f9$m77|ljX~Vkk8_Nz&GE-<7X@5 z(EZv3iFCN{4~b0R{~uZcpdknTlPVHPJul4HSEcWQWzFVmE)WyLkSih6{ttD~oKjJ! z^qDe58?9<)k%Qwf0Ef$~cA4Jxs~x|3`#LyhsKD@2hh43DUEoaHxQ?YtGd(8eb2z*Y zsuX?$_}!??&sSc@!{5Ac>C%OB=g3<09uD6OZUjdvqD;5p`>;}r@D2M}_b>79eS7kt z@A=N_s9E9gF7|+%=@U1i4}2%parj*H@V43RD_&nScbSW(mPNal*;kfmMbMBp!PVlM zlarHOZU$g^qf`z4!&K|t#*aFB`gi&zZX~=e=x`wyHDYyzVQT~{c(_rU0Unn^R+s?ipM)$)ZT|024fJLN+xcg?<)7Rx;j}?B7YwKc)JhRFkP6*u8-r`1JVg!tLWt zcDYyZZO4ou{$~jerephs9{c(s{)yZh;1_%f{!+jJ`K2$t9cxoEa;K%`!ks<`A8|s^ zDP}YRdWdNVSg^u$9Krq;T#3d77kw}Q2iSeTQZ&_={)4((sx;=RLD5wm&#E)vJr0@2 z!1NKm$25)I5LD+H<+3|QiPr)8r%Rz@BqQYNt{oHut>l^Y^jqwnpML*4RgK*cu$wdV z`7NYIqIZA~m!&=FJjUTWVwF9b9oUF9I|6?StT~Lgf@EeBSc|Yb3T1MWy2f$u`JTWc4N{+r+4#7vXRaJl!43^?2#T=MXQk&ilt_dX&2(< zynbd$4@35}{e8VmPq0!C!53s7bLjkKRsKSit+Sn=^!wLq*K1^v;!TRBR=*&t%RVN{ z`SKS6w!n9Smi1e3S0V@g7mx#6Y(8Nby=C0Jhe^S4y>;Bi675;TA~BIPW4nEqleTvw z@Hkk7{&U7sdrr1d64^?7Z2?ry!dhG57v#D2l3_Pr;_30X_>1lPv|a*fSDjZEt7sQg z7u9)iA+=JS`o7(bYTsjDqbQ!&X8S?OGB52EGCvOU_F5$1YKgXk({kj)EFE9z^_p{5 z!7dk^!?e9}eCf-p7gpha=j>tq{cB5&7LhvzyRr6u{qR{S?xPs*_wE2~&PWePkAWZg z0;@ycr5GWGc^ZTjx^o8C4}cA;0UlboS^_7_JpiLRtPXK%ZVzB|o4D3D#Nx4V+(7y! zJMP1&p3yC@;F)t~I9Dza(pt3CdPy;>hOE1O%PCff(>_c#Yxz5xZoq1Dk&KVAMF3B<}(V*)%?W&D?<>yPfcc==!B%SX#ln}?5Yj$M0 zM5}PmO4X{HG`?w`+ZI=HJuzYZ$&F?%o2H$# zz(7&YY1T>2x_u*QlDMKMN7}lkY$z7|YI^$!94_gZT#o=oaDY2&Slw%844gsD%)Pzw z(ps4;$DP5ivL{;6^Z!k{04>_Ezn4B)OX0aIS&F`qG_Fi*${}wpkMCXzbI2f8UMY)Y zuu=;DULFy&%wDPbY!AGbKL%5>=dwLeJCZk+k_ zgTnVdntdDP;cSp~X&tPlv#77w+97KI!OG0F2rCkW8mii7-6@dA!YW@w?QMg7#dKDC z8SY>jp4I>54JA;mkwdCyl*9SCX1`o4Dx@0V<_ftS7?xK&w7MY6ZcS62T3OZA|7&|t zt@c)2TmH|who~8v%`>|@>qn{Km5$BVY93iuH9|Da@zxgVTP2IittHIGR9j7z80D=6 zaQ|JED1~}xf;;m2_iTjWMv?wRvt(JJrJkAJI&#vjgyG!bf~_gBzLtI;N9T#&n9oD-Cc4!zKABi1efKl3VaeV_|{ReslSSLM2=ZuPVym z4C;q714X$SE>)CDL2t+pEkBml_(Nae5InD)Z4^n9{Q~h43NEMsCksO28C9!d$f5)I zcCg!aRTEv}OPYFbfO@nm%Ux8I!M&;`)NjU05W7)@{k$hlw1gcCH{6(f{Jlb#*F-qH zo(IRJ6wb2Hr8Y~K-XvWR#%{czn`Y_{1hTwm94aG2mQPQ>qN$RUM;CZtWTf!LE3{mI z6Mk59$sM29r_n_f=&}eh?`#gwjE5X)ejJIvcS&0y+92xe2=gy(6FExzkBSuh_ElEz z7Y`X749;RUL_apPg6u52zaX0Oa`br+nM=6vd zh3g!cHeCwN3J8Yrkw|uJ1#Bgr4#0DNpTD5g6x;hiO7$1Kc@O^I zw+9zO=hIECTG%Kwwf`vvtiu-YtC>xHV;wCoFB!5!Lf zOkv(sUz-eKsT_5R#!_rafUd{O+OlPY5j^pB5Zq=V`UbCP%Z|W?*I)Lkw>xa@rK=~k z*F>9O5%<8N-Mqv)oh&VPqeY!$f?!$Su$?@*9R+{}@pG`cEzXWIL%3XxPD+dvmwER1 zzd%rMS@2~B5bKAdm&ZPq>|dH9uSGD;bn_mdJTDmYk)qXHoZm{%S= zO$0)GRI#yKGCFo$MR^K-yXXmG0p-lX?+4Hsg!^KFn@C-_(^9f>vlY#iaVR49v=T>3 zCi=g(vukaCGYebh-EX8lx^E=}{2#`E%)b3Ve#iDKJ&$01=L9|DIA&bvJ1JhhRTYaI z3UqyR0h7xXKq>MxdpKDi;U$!YB4IB!^z~yr4Cb?Ho(U}&N{LQ6}2aT$&@Ua z=#oB8UC^K7FdhLp9l>}mkG{7txgZPewWzkqe>sJ?;@k-*c@?YE(*bUP#Et=z#?e;w z*WVq}lxP=pb+?0ZV!Gw=>xOoZcD}o7-+gZt6Nowr-l!|pdjV)E+ZSX7SLBCrMcjy^b!CE3>b+UH7lIEwjMjNik%`A2h*()brVxu+8}|m$Bxj;1 z_*fpXv<$7#lDuy^y}~hzt+$`WmP1G@vD`E=+jL9l`de3cN50sAixQsH4qoo?ywMa7 zpV=6vabN8)n;s&?xj@kAO*mrm5*>~$qXQkal@6U?epj}+IT!iX_}??ZY0GY2OkIP>7VD=d+?$0 zb}+CSU24BFX7!~uUzx=nqz(|I&2^8?pM8Ra>2v$BnI{53Xt`?_FEiur^7%4@fLnWi zn!@qz#~=5dPHgHiD44-FN(|7fjGXXXg*i`?vH(o6qUZ=X^JOi zTRtE?8(F47JKn;CwS}^Mk9Lx_M^sEpU_?2HNfsd`Q#%Kzb16Yy%^%ELIMxwrSdB9W zvqnmli}?ebmFHVCW>v`c(g`K@mwAo-Tmg3Xp+f)#Q4SxL0kq_es^*BV?PJFjjVfDx zg=z{v?{BG=EWn0Un{ltQ=)s0nma#KDn7{C%Vyo&HH0;gQeB%CwDqCt6BzFGvlzAd& z=$P0A)kMm2>wud9Bodrx3~<%|>ycPQ^*=Tyn={6wAGX)!BdlpQm;@M-!*1*}&whUF zMPkaD?P{96ZEKoqYqFUm&bqd#ypyWLvWQCGshC+Fsq>ET!#3@omKlYyzZRyM_klOU z{%{|)@_RWz?B!{ZTN7}c&(j>De5wGKv~k5UrhQcSLdUMTv2hkx(rTsLF%0>j^!1{) zvZNKX0UMW#ysX)=a}2z@kMVJOe_tnbtD+EX@H>38%DimUp>u~3KK-r*kzNMt9+|FM zh8gm(MXMpRkXZF3CJ>{-Tfdl4LJBcV0?%a7^f+hJTZd&L*LGE+ z^ezK=GJXvO9$E!!=|YrQwm@QG6-G2TL#Ekq!Pt&twjzLuXx$QajzzhG{aa7vxNC-0 zw0G^IWd@5?R@}T?!>Z*+WmT2`aGdRqR}{xMis=?d4M(YXRiWk|;t+tncT_ro9dU-a zFj3aXc^UUXFjh;79_{CtiD2$^0W%S?znw1|UY&r}E0^JuK11#(pqVcvRAEf&V2KUV z5t*h#XN#WeA~rM3`xR2KbsVyys(IfcL%h=DQP4? z8^BlKxfcAhZT4aywwOi%hi;P0m>$mOkM1|{vl$rM@X>u)WIK5SpVf!$S^9A10G^v% z08U2ciO9oEpM|+YYl*cR)uG-;zg-qA@I1A4og3Rv=j*a8o=0Z*)&Y%b)%01NTEm8EkV;k^SnoUhb)^yW$>l(dF z23|2`qL?d$R1Bk{Vh3dSX7U_`DQ6Kv=%>f6!+)r&dbJ3X$0fRDgY+SuUva5rDT->F zwL%c6o?!`eL!bXX=`rbP=|`mx;SSB&V~6!7crwd6;q3$}m=_naqMa^jW3x#{nIUU8 z8T5HpXSc_iD)YQBxMznYJi-lx<`4g~8d%j@-38A_mlc!R*oeWfojUk5AZLuSQ7)Mk zLj$6ix=dgU+NPyp6JAwUkp6`=h2SvAayN%@{#*tE8lD;iPTjOs1uRJFR(ubvN!7M= z;#sop)>XL+!(jr=O}(iQ!>~%40#+1^iF}?K02u)bbaMS+k?kdzHapWb)WpUVa$fT$ zDsQRDX`||<)PijJ8hryk->Jg@Vu+nTOZ6tZ+Iwt{x&y4V{iXV8T-U61#HeVv0b zHeW?}R2aCpji^BMUl-ue{*N5La+b{QCRuC4Jef@_?Yyd<*I+hG5Mx)k+TDR3r3rTTwOOtv51L~2{ewqz4W4AnhZOyb2Z$f_XW1sx$P9{!E$+gx*nSShE^Xk`HgL4 zo%VoHXsWgYqa7wg+W+_~VOS`apPkTL03pGhtl)SwgRAGt^X0FPYoM}iTw}>a%_B_# z7GJ7KT^?r|dsYwuw;zXH7oW}GdsiOuz9BsSB0_jMpS^?_6PMX&JKsNJRwlb>!eM5C zV26%z-wYdb!*C4v@7LS1vVy@!-Sa9@91?qpBjCHa7U-Iee`vIeZJCrs?j*tARqB>IopLur(>mCgE4-t7 zo~6WNZFJBN@Y!sgx6eA3!}G^2om-$ZuECSRq20R+%&C~~A#$8v)Ap-xEoYjJhS5%Fdnz~o; zap#9u*i$u=XdgR9NR22pLVkO4Azj66!YVJ=|^~ptYZ3z7#|01&aakBPhYoiZGk9v~VjQR&sBG-a~mxJjFwi0>EX1 z^^Fgv(>~?EmOUq$4{LjXq~V~hvp$$rY0_{l8Z z1h9YycXzMvPUX)I=TP{`uFG+~eT;Q1m`0(rD{VWIAQcK9kkgmBUjL&ApV!WHrrVUWqRb&{TEy0pF-+sKT8xyxbaU4SM&&ZmbdA6Z1wXP8 zzrmM=Y~+M$b|1cgy}T|wtg13qui*JT_u%o0P89*xmUNU!uXV!u-e9krkiYD#V|%(D z-*>&=)W1w@L(YQ5`ew&)zcR&A*Hl9nfm5lhsuAeJgT%pR#azNnUL~Cw$KM2R9MczA zDqIk-{H|(l4F43|iHQ&a%TKFf^ggJv%uZ?lIG9i~Y(J8Ib`lezv}-|CbEBdGOC|lU#+qA#dyVFLXgE% zJB95Af95D1q~B&V=qaXhXjP{2;i#|NGh;OXZ}b$R?$%@?A0Au#LErfFL8JP(iy|+k z8%&1tuL%3)#7OQf0LLiR;~+Qr7b&Dy0@*Q-+J%CB)O6$krHPcW2b#(LxOhuc$V16N zwnQ||-~b@*yA9C*Yh@iBSTh3kQB}aDo4ZvL&?r;8$Kb38kQe0$wWIP^^4U`5V@+4&Uxxnv7g$HUc?1$Sg&}NHq_{tNe-%3Nwz)Kh0b=L+ixe z<#=rVVd>IAWAmZ|DwY;Hh*^+>D8AX9L{Yt&XBvDvMK2FwcIEykB+pTOHQz!Ib=7>H zuF4&#mvXmay%Mc*iZS@cL=1jEUKV2TjXWl1OOTp2WqynJOhm1aS0^Ly0$%lvDB^DF z4I$zV&v6>~y03na=Ed4s^aJL>0?9sLxF5Q|W4h@>-;sy#zn5(@^YpV*W^1|* zYJnHrWV?FanT@nB(;XgaujYr^GbT=$gxLEB4zX+Mlo)$zE|m`yTz@}yhsWT$u|h1% zq!mTOa4~!txkOEBVsu@9DmA?RP*=3Ds40%C*_NiO#4A=@-Lhp_bkLO-|Tl%bj zHbu6GxJ_g>&EDZVdsnZB^Oejec&~u>eB?LIsPK0n)tmW#W#N-~>h;zHnD5(nf3C;J zWtIjVk9-T1`MYWU;bg=cNV6LU5>?cHco1zf)U!uf-lwQ(gF9WY7zxRb2^gI`0)3A! zdM`z=XzI83r4MEMOvOldR@qF6aHo3XJ~6!f3I>jErs97j2DLMGEA9*3!d2Jue(2L~ zLcEBL!-%oEc{KP00U^Xf-Pj8Sfh~l*=;j0+MurV=v8ci|1YFA09zmHonA{Py{T3qH z0!O`gr;%*nvbRMsY`-nbB{sO0W1q^{ky3W=XPw#2=h>R-bZFnIseC;T2QhFR;c+Ez zeEw*EWTqI!l4vKGQURZ{W`rzxwKK z;CFW62g&`w2-I1()GhB;{qAnbua4l27&r8#Ik4ZBfiI3p+nAFv$-6NW?b%=moZB_* zTP%zXKUWO7khdzuV$`L1y@CWq&rQLGO zi=%vo+>KchevmKi9KJlt`0}K5R=WF6xpNFmjCJFulbnjsvCzz3%kT&uAv zPUo-(U2epiN8*JKgdGD1VC)#mYXa;Cm9MvFA#r00gNt@#Uge#AqTmAIzj)B-H_-c; zhwsMV@!b!zRu5Ox(DGI6HJ{2htWI<;jZI7kWIv1h88wY^=fOwRLY^i5Eutz@K~?o9 z_FwbJ^S-7=yaj4r*)P%!&-@6xqGsaG_*YpUaGpiiq#>{Dl=t9$*MvW!MBh9f>CSau zep^xU08@+~o8rre>#sHN8Sg=D7RP?a&C-DCRbJQzcdJI*(uT2A>!-nB_=f(?5~0N+ zeLOW<&qNVnwS*C279%bv5nwou1-8+Yy*VDkw%-*8xXY!|L_B)~^9N_fv*rEd0O;w7 z==L=+p3R}}aO{ZSGQID7JPO8cg4Xna_9t_tLK4{?^PyY&ugc`Ep-fr!h?T_vv+%X&yWaU#hH7^6QonJ=IDc%D@4KjW_a4yFf{q=d+r)`23)o zU^qzXBf^NJ4IjY3x5#B49`gSN+aN=CwU%0o53?)rv%Gm^UC>{p@s`ztV`8toH!u{F|eksPKW)l z-)qxh*dB($Ip!Z=tRgOCQj-s(sx++s!H$2<4JyTVvje!I0M5QtsooY5uMXy=ka6YoFqP&Sg zKM!MtwgH3oh72gc{6G}0ToIA@ySfL!`MP2f^Q=1o;G5qok49y?**rQL34R6caM%W) z{UPaT={>V3u0%zO+k?|`4_Sj*B`)cqNyTjvF!jRzkclJOhU>#VuQ7}hd$_~+3C*u@ z>c7@999=b3MOTSqwY-9+D^#^y6<$pH94T5Q0!A+hyeFD)r|uY@*OMuA995r0^IMwf z7#hJHI;LgoR8xp8>xOP`t*&m3HaF2wb8T8bqNqBZQ`mfncyC_1pY3g$H45E9AD3E@ z7T7IJj+$#Azrk&oLfe!he(Z@n>dILb4Fk@iNQ}`)B*%-gOH>(*7qDn--BhVlbSNVR zCAw-;Q!@&t?$Cj(8o+QKm;({lQcE?6r|PCLNfzu5AJ2_`oZs227=b)u@v* z5lIcz))`I91AiZuC@B$E4 zlR>=&)Y5?KWt%Fh$>^7bmIR~sa`A={r?oST^gM@k+_CBspmL2=M~@r z>!eQ{`@@9yw#Rr6zB}T*VV?r~f!-Mc5B4)<%GOw~ zBX;npSN4E}6_0*y-T`8Iwrp7%mP0o`p%^F=67DM%xCx-VvskMYed7CJSn|lXuU$*o z?=LJJr=rfu>07{AF&X{A$SBr|=9w+vPu;NfnOu0d)19C1cIKtYJrL*inZs!Z!~T%z z-H`T~trH6Uk0z(&=ayQnrDMnL@qOZz!Vq5kVr>ns!1c*__OB~;#Tkv}=R4iGxlY{~ zITd?M-duoje{43abbDQnhfijmTrj1zpYp&CjJ}LDOoCwoJA%HuD}w$p7079MR5cu5 zvsJn2tJE?T7%EMb$szBEcWkLSfx};b;8#uGv}nPE@wPPGvo%hA%d&~0$%E0T*&I26 zgX=XBUS*I57kH1JJbtEn80>F{_M(j)Xc~#562jFCtI7(QW{G~(Yk6Ml$nxgq^5WtN zS7gK4wx>T@S^~UI7e-FmUIODUS&!m#w#DksotlE52swAlf=M$kVEdK?Jbr`$yXOUa z6;d)|^X*3$H#`yU?~E1~N3B-j^yxz3bZnkE&M02@E;0DJ;2UG)wJ_MRF+v>X&6#R&3349nI437i{P=pmTguEIuY&%S`@%4cw+^MAx?a zg@UTvk$v3+g|Zu+N3<5^$dl5$r59(<5>N(hHc@mz%rW+om)GTpyFgUJ9O8eEVWJ-9 zLF0ZMu6Ho=nSFmXn4J2GOgu%^fYU%IQq@~fsqGaEU^I|p#&0U1K^@oAY(;*!>3PiL z1~m#sjzj6hwEA}{m?2~X$evAl>cCavus6U;gXQyU^{8=M0j6r`zvv;ZQV6uIQB zTGtxTT-J2G-**ZMV{vYGR2ZM1lP-b>_EG7j>0JKTzSX9@IbM&p9A1&!+(HMg+jI!l>3^i~MBoEk4$WV@K2#dNRN*cxrY|H!`120RImRXa>Al48dmYE7U9$bRlkqo|rgR=nroKM)$_EcDl~W~( zWd%nE#$-Yw-II&ncQT_>PK1%ESyU-Sh>hcQisb>n1-!y2n*lfL&rovv;C7L@Y>g(H zdwhjmFBFtXEtf@Z7aTZrC6%&r4^JiRIC!_-6)^xDDrWOK8gj^E69 zI$s^9L5D0kF8toPlVfrT6S*~e{XS08yfMC)^|!rq-krkH+#^50@D9c=Y=d*YFXLu} z47%w_PMROB9UKPh>>P0JlT+3Y^7(NJn!1O9UYt|bSjRFkNT6bF=*R-)$=WS7dyZjF~860dn41YMP?)D z`0+K&t+f8t6rP{L4&1|tA_|u-WrBuH#7i9YJ+F>F(bNviYFvmVKKP z3I$^O6}ONxF&m9?dGx@70?6nqH5lTc*)+CCL--kOOJjO+mGx(Mkgr-O%M^PL`ScISYQ_gVM*PU!AsQ z((5Zp`LtpW~6@+M_R%BgZ+m3k?BkS8?#4V$0`*t^zON6 z?5TodZ)iM34c8`O)OWrFH#;++dk~#*K$gg^2k#@nrmTwQPQjrN%a{~k|L8yy2Z;A6 zW+=baHQ>9@SZ09%7Tp7LVi*D=u8hZe|>UYo)k+x)>S=q;`&>|us2}N9qTLt z?9A4L!zgewmX2d6ELN{s8e=vMgUSW3kcriQ1jM<)VyPaCv$m`nwgG6Xt|^0Gq>fta z-dnUR8ZJx$WG>UUOv^W9;}9C%1RQ%y16FegsEWc!T;E0dJt+Oy4~cphFWLkWRfG1r zvY$)xmWX#B%VsFP1RN);x@?$=34WospcsIep;8Yfd(N`Qfyft(PMj$0=dB2~56?YA zuX^8ANJJm!P?)R%&vKr>1pY<2jb0don{f(Xb7@-iJMr#WgiIm(=)jTqGvh=36Sk_(G!vmPI|%dJfP4O zixUna-!r=&y(tZN+W77C_EX?)e01>rtia4QLNW!L>8PSAT9 zUt|+oK-q)Fj}u#1MoW^|vI9S(!5}+v)l44clh|EiKh0e^m_^mgrnRuOuE}Y;CwnS0 zv~+Ezp|zJ`zR{w){+4w)awp8&`sq<($MT#7jFUVny=%%y-@yt&W+8;>>l3nYX)`n8 ztweA|+9%gTxR?o|Y=fr$86If#xEK@J;9zS3k??945;3L<^EAmWneJI>S*ayZh@{ni!xRAljQeY;<$HMyJ z;zlD2T!F!MlpK{j;HVI0RZG}|Hw2A+Mv{uWZ+lSWo!bZHXd9any;9+IIQAZ2ZLn=I z2mj6Q8}{hNjT^6b;-A~eS%=i)Tk!TPS8iM(dZ)A7DdX<8GTsUYw%cv5Blb6SSe?`@ zNs5@Avv*vC9T`8&Y#s%9Hs!Ls<-&x$rwjRk=T2Y9C1z?o3JU_)V8>_#+zMJ9j;)0MF|A zy{>APqY}3#GY`&rUI*9X+<12g-+C17RuSJ2swWR*&x#MPM^Bydz?5J3-pHM3zfHO^ zs2vw=nq---hWVQ6(gxFrX>WryqFh zI1X(FsC@Q8TnLS~vfgIq+{kBmIo@E7Cuf{zvIwNq;K+2jWB( z$8_A-h&30Hez^4&S08m`XI5mRLa`kAU}q4*_4Hnt29)oK?BcGt9`2Bg{%oD-tcoN2 z0nPjYenTa>0MiBj3a+_WWQ+X;wpZa5*Vy28d);liRn_?)b=ltx*`J7jz{8n489#iP z0=x(ud}VYI`?iSCvTqP!Lty?kkkhKOeVTPkTdLxcCm3HgmYa~z;fFOs4TaQ90^V{?;MWuVOO5lpOEAFm$96*%ETe)QcSx*Rsqd}%z~w|usqgjT*pLX5t!&kYrAPVbpmFr zMvI5%RbpDzVr5~wRa;c4Lv#(OQE?Sn^$lyWzP>m&zdUDoh9ZYMhqTZI3!&()*B968 z<@s8{Efz3>?JR_H$?_c<7HZ7*B+1^u0lcD^qrH&o?PY*>6DC6&iy3j2F7k?nL#!}X z4L7S{wT~IynjsAl4jPH;v)~OFV-A-eTF}7tP{=Qy_9?aH;$sDexVniNwJ==|^T8~A%B^wn?hmy4rFM;?uO9h{IZV1)bs=kDFZB)P8pu)1|`y`SCHRn;#yt zu6Lbt?(3X;&-tAIbjwbGxCFh7lagpD2-buhewVbDa+ns-x8q8JQ`Vvx7oeAZ<4*<6 z*MJbJFsQabIx(3dPf|uWS9KtrGq4v3eu%cSo6yf6tY2fwIov;|us>yVQceyY6wJK( zy>omg(@9o1PqPBEI24Gr*+>tBw=|@=$Eg=V!DuRg>in(bgZS}($Z;fqB;C4dB1M7+ zoAYzg)Nvkq+tSbP7V&9UIEH*5^^M?W<){id_A!xZA!@mPLjwE;L#=`FEYM{6y23kc z`=n%_R?<8!+q|K=eEuHomSfUDdZ+XO=~L2k(l1EACjGATN7A23|GV_p1mqhautAK2 zHfFY0HNFsuS}k^r?G8d5bohvjV`(2Xzdi=2#n3B8aZ?RJBpBI$O5SLrf9Dp4^mjQL zX1vx#)NdGFWdvN=?1;;F%(Z)H?pxUzHG<)LmB5aNZxblHVqe~B$9zGQpTIt%1KqNW zzwo8D+F#=|;DIn4;w?Pi#arcQi>C%mk4YzmdiyX7qJSAu#Uxe$L%V6)rpkBCN@QH` z;*xHGwGE@H4kcrKOe;kprD0UkFx4pmdq272Tklt)m}Clyp$^4pm=l`EpbH~%$+sC} zzojzG)3SRS!&etjE7eP-2}&nQrT>{Jng%K+m7(BO&1*B;FUbVToKoF1l>e47O)p%( zi+K*bB)w@~pb?Yk#@QUXNG)AUiP1G{PcRC$1~PhH2mvmk5VVC6;yOTFHK%QFn6~?e zul@*XTB&@`flR293&kIi=r4_2Zw-s|tbl1w*5sEt-Z=W=-6OqSdNR=g5??f7bcVw4 z?4b%!0hOiQ)Y=^ZSi7}>V2#4h07fn?TJLl8LV;bVR$@M+38>E~7T8yyFH~BU^zTT% zd!GwExb3@*)rRMJn&KF7qY)d9dQW;9v=UEMv-4e$t8ZDO?-9FKWvaR={3&qv=lx|L zv^jW%u4w7WSW&+p&cpDD=h-QImv0G-Dd{z^N_MzRo|Zl;eO~&q^fitXiVYG5>Ma36 zTtUoB7sqFg^ob1^6(r~axgr(u4DP6@chpehIN1m_0fIY8cw=ofv3QcURR_1Ud%g*PZfpM|I(h zWtJ-j=;7fk`YITevI&~)F{o3h0gIOT6!UN~7W7QVF+owEQazn%j^ij)(`0rxuY*hj z{gJU#xMNzLxI|Si1RWd~l0D1Bx@VZjMd9p$u01`e>lCyRv<5*(p}Iaf4a%QP6;MM> zMO-2wzowXQPNDaMiUE2zvup#E@Hq{&Zo@%DP3G+~=6axnKn-EE%F{#|CbS;MG@gOF zPl&ie8T$Z{p~rxhK&Wo%%6wA9**G>K&4KQMcs4Ol<8q9rDDNiF5~0@XZ=vGChc6hk zc!{N%odk#oiXQv=b%W@#jXuI31~tpJ^namSN?DO(f8fC~C+sHcAuazw4vKN$1?Q^-|l?W_cEvIf?^)h4u4Phx_4nOi{8yMfh;=;Dd2J}C-OS}I^*bKV z3EE#|JV|9SSL7i)d@j8ipAv~BQ-0F2#@XstN_3cV#`6xf1^vfh;FmR_XYu}oqwMw) zI5$EwLK99zeTct{B)@8 zGpzDLTv90*07yW$zt8eKHS+muq`M}qOJ{gy`vb}940Do~OPm&$sNJ1HIsGr=2>tdj zS9!5GysT_uX@3YM_efeuUl`B8y9=x$>swe{pVLfJ`@N*B3gv?JYyjM4%?>H{NUOh* zloB!)wnW?Ht#JxF`xteu1Ckt>Y4h~3*+LD=sQ>VXIcJ~dO%~ejLp)niNL5`P%3}1d zL>sR8oBf3LGB)i6Y|*m(clM=668q9{eLKQ2yGQuS`0Ydzk*bKstF5 zK;!wWq6;Q6Vv`QYNQ4coWL8CbGrGW*k)~3d+pV~_#gU`2#fllMgfz@iBaBW#RH%*6 z8u<2x9T~0zR)cN;Ws{|ElqP{v-3YF#>|7MM-Uj*yDz@yK-!OgIR+R68O+p;g^KF~? z#uMc@EU*7wR zuM$HxgFuHN{XQ7L^&l{1+-ViCFpQzZt0N zK(#;pY5Sf&b8(o{f_nlUODo2#vh;0`#~R1#6EX+|U{#XFc;h76EogAz_=-!+SxTgD z5U>oNd4?&J+(*chpqVQ?QQklS4gDG1d*)k22IFu`WdRKNeL~45y64b7@MX%|l>6zh zdzhM!p(_c_keItjdj8y=h!Yk8|@JEOJA)1_D|3yUFsC zs($Lc6;6d#wx+Sd*EA3}_lKm9k6CdUhr`h+Kwb+(;>}!&ViKYw&|%;f-U{=aR$(@y z&ha>tbd&4RnS@#3C}Ed6j%I+CYaR2Vf?#wDL}lXS1Y@C(rz}fmd>A)z?%R*NV9(Sq z!H}t`>9U)8Rj~cQDW=)F1Kiy&Ew`O%C%f%!*fs`@cEwoIoIC6W|U4__O|n? zKY!EgU$LO*&AnGL;P9sp69QHD2?6_;Yq?&9c6&uykWON3V32dqdEXLnB~emrQ9e7D zrEQ9mDxa-XZi&0pbbSeikdmG1-pZ3;C?=Y??JIx4e{kuCpL~H7?u3fEEbh{kTzSWZ z7`*3OLvQs8FM%^f-hzy`oTMz7YN5or6B6g5qfL|j3^#JooJ^-1x1eRhXMLLwACD%~ zsz{SUzQNQa0V|#*(@fk)_*IqElw1tF0u-;ZZzMa}%kwv@`5J}~x>a1n1okk2u*c^{ zJMGQ7%C1tCK1{$&RJ2DZ;XO*5(s#atDkLC^^1*jfnzVQEuGYbC>xWp&`OzV_;CuL9|-(q-w#r7uW7EB%7>OMIS~`+}j( zB6ydRJ#jByC%WQBL-F(wVr$ zCvp4mycT!VR>*OUX_Jt*(l)UwCwsWO0PUmT1@x=`85CmS?Z$F}sb?VGpez0zc< zG}*+>v0AeRfA=Xv&pffR!!<$xKH!yW5}dXsv#0M(%gPXpTE^zjYf`zOK-1S^f!X%FjXlbemo! z_~}6Hc0cAdpIA8mM4!wsHjp*?O~zi3RmxUYwzq?y`I%s4CHM^dmyF%GhP#OvH$j>x zKGk%zNZ9COCm~m5TxRTRtGvdYB;V$W26u0|T`x@sBN>Ehb9%h8RyujsS#6sW@Q>8E zGZxoRHctEVvmwPS3{$8D;A3stT3ZRt^2vt-xW8jetO$Cge-HH9JahPPyE-XP%hw}! zFJG4VP<3&AX_AIVY9fI=eva={I}xc>nhSW-LbEccE!E_BVQqOzZYP=KSr^D|%M*(Q ze~Sre2D9hwmmkJefShEM6A&u`EmuLgOL7M4>ixd%&39K@j@ei}8r=W+uo)8gelrZ4 zMB|QQTvb1Ne{giQVLGkV?!2e_4-7)Mr^0Vc=}6?#I8ZKvrUT>vpE{WLr@6IIPBL6nI`ZsKh9+tv)8Q7e0He*|c$*(e|vV*(vMf z#`SAlFkRA1HqIy74Jfk%HionFei?V5bpBml~M3tTCJ`sV#Le-we+f$djlgBeZt?4`=z*{@kesQ4~}ipATNU z`w8;Ha25RGZy`5>Io@S|jVFbJVF^!#==g;QVjbc2wG|D5#*t=3{h11u&wQ7$ip40dwwcv4 zRTJ0dD6=Xm)0NmQo4PZ3_oSnnWjAK()k?D>muEY3aZ;!0(%)v7*-*w8K&P!km(TMc zs+1t6J}BQ73=amF$hrkeI!pbH6TWn*&MlENam~Kg_PSWy6Ec7D7C0rfBun2L!Erht zw!-~1~RY>QLkq+)R9ew(FhA$xfZL zbLaUssr3D-PtNxV{9N?ybI;oT#aAkmlNJ1@FiQ_~ix6y=D!*6>{nyy&b+Hq3x7QQ8i$bSZE8a~oQC+|ljQqZ*}K@jSl&Iy z)X$w)*bqPSy7e3q{~X`l&r}@)47T?aX6!vD{QO8Z_jFW}<~z7j6NARD!3GB$((i<5 z6*SQ;XcG@LT;ajxovjVhzO4A_WK*+EN}HNz$X3Zw=!~W@$9H5+2j#cq*RUO|ZhOf;$%sk()e3!nJmW}2+R9}JHKCAk}wB090BJ|meqpcG}#VSvE zm5(Eya1-l0X6xi`8C&Zy)cs=wy?#ZTh(fIr^~J<020Ki2rxm5<>P&{(>FbOcu4&5p zj30W?6flU%a>|{uV?zB^i0noFvpKXP~m_YANoNU1|gij1hBbXBKFX$ZLNM{H;N~ngH2jjw;Mv)k=Qz z6eOgxfS3$q^5P^>HAP-9+{#6!vx^n?cgYVR;?B8qj8XRf>Y8_s(sSNgaqiT{sP5r$ zJmOxO@Ci)lDjYUrJPa$nlN37->}1pyLR+Hc5J4{^h64U0G?7Bc$j`HyJLwTcgXXU> z%VIjgd1Kve)>!P$s0xrMQzcZCvM&7OnPRJ+qZky1;jIS-U5YYIV>2H11Ji@XQpnm&9#d&v&BXn#@pTf1B zlV~AvqX-vVBkpS^rYbb3Sjj4_ii2EHUVUyhVV!StIe=Jr!Qg(ov$je$p~ZCC@Tz2u zSG+fwyF+hRG=9HT1!djREtwHx&D7vWrc{T2a>r0KT$!T^)d;;Um+UXQN?8pRPa&#o z>QhuUWM;^^Qqe#Pz_e0pTB@#_xF|&tCIUNO52M3X#g%Dwv)B2Dwrptd2pA3WCQ+bD z>eyGy=&rJ=$eIDqF^&9rF8_a8)u|dN@J-Jq%rzZmQA3p(6oZBk&hF}VT|pOHSp~h) zRH><&x(@fq#HQu>;(RvdsC;;|_EjPwA4EE7x3*Ba&`*k7JHq)S!ko&L8DYXEE9mgI zE|TiHaxq@%JqkfUI)j<8!^%^>rh}a&s{t5Xw4#_gg=Xo342WvLXi7Y4P>jna?uq;F zC|0{!hQ7c=Hoy)i)vq(zRPmiq0D-J3#HWg?7>q?ST~IVlS)g*nm~VS?E9(4kdwb6a z$GpCAdmEPo(a8x|7cSJ;rzK4gy0(h8rowNcbcyCB26rJ8o=BIQ0i+;-XQ6B?n{uxs zpe$e}LdC)u9@>$k>k6W~n9!?%7-l?6$0${q0eeslm>dFIL^CG3$8KAlM1SvGAYEIv zR0=hdsti4%2+?h5$3%7_yHr*%*)T{_a~##QND0&KP}Cm`8}wS0fy|-K1sa{+ns?p# z{_#z)Ow+k=TPjO6uyp32Wv=o_z}uy}I4a=VrFTi+FMU9gHnV9WjxYj!c(1j^(^^B{ z-cq%`D#p)^j#i2J9*m(Vp-ryCwxT|6W(dDo?S$OdtcOSZLfnbsUb_?Vo5P&x=PJI! zR&EDA)VZiilm%11Tiq^it3Rx+m)F&gGR3bfsL-poB4|@x*}O6rwcze9K39diyX2^B zE+{0{lvXr{&Bm`33hUR@DX4v}p}VtZYCQRPwcD-6r>k+d8`aKO#+2G$)eYC1?Zwqv zblRPTo7;VL%CLf{R$atr-sSkSuHH6HxEDoQlxqNENki&LD~VLkN)JH)|2Wi1%un(0 zadM3i!UFapjc2YFl5KL)@?_U2TpUn^bX5&=t!NRKal94dGfHvsL-!UO+2L={@wurkoL45N-(})$rry+bd@NbV zdhJy*NmfB)ba@^}X`auqX|dMPrsaNT6Q^6yzmixuQ`kFxytMNP*$woi4}S0yJ3poe z?hmV#iaNdBH#aVsj;yTw(R)92Y2#r6RaIg%&{P1sjUUR2X60wn$V9Byu+f$P*PmkT( zq!fP+eb02@Xa&a6QzG*~Kbw4nFLHw=S*47_%-OjPQ=3e=5Y$mYUY+br64<$PMrEr^9Spcn{GM=sJ|f=2 zCp)@4K!H!T{H1cX-mb%6H^6QE0(ZI(a9fy*SO(2u0h&~=)Ce2>e2o~_?6`K^!AUBi z4aAtrD-7bzZlw@a@QEI66DKGSJdJDaD3c;qfe5lDqvF#{<%1(wFGTd+`f3D~yWzy-;khac{9q+8z{dy84P<7#qw{ATC6 zSCMTy&;l z+i$e22lLzG=-w4lDoRZ32kpIE1I@4tT7J0Z8iSVT{Cgm+*PnRSgj z0%9M2CKwFPpGo$)D`3gqvq~lFt13G^*yUFSnCye!dm23ujBMV#SciXzM?a6|D88AR z+-VKp-)X5M_p5({HUB0Xhlq7=XEk7CZ##XdIa-zYi%4?Eb=yxllY8EN-U?dg1?l}D z{l5k6=Mzu{m!&UBUz2_dO5)JA6kVrnjk^A+QNLHbztGm;U)I)!+uaE=>UB3#nm5=E z_qE6arI@tMJ>E2v7MhjB&bX#Zw08Sy_Ko-E@B03%^nPpKW&CV@eHBw?@8YJtEn4!6 zc?Gzb6E|OM)oBiLfxQs%jNkJ~Ci)clWSoyLwC-av!m^}|9PO~Ag(F-N77$KsjT^KMk9`!**Xuev6yk zG3P|=)!6=NKfR*<#XUYB(r(53uZsxNbaRG9lFQ}{k5WxuVh*29ZvSe2HU&=^zPE5Tucs5zOWYorfSzZWuQ;O@ z*V{S51?sUITiH&0<7dENN_S$OZMAq0HZTv`i}<-+H%%Xo#Lw*_GE5gg;)s}f@_Tyd z$vuwmWo_fW2R}T1>&A{uk{@QWkX}e^vwgA%1mR$jr8^wjBRL~>v~l+wdgijAVMh?S z^E!_RMv;0L{+fssWF@3X4iKs-WNMnX4?S75Emk-Vk~A;oH^f{=Cr9k>6(_iMYbR^) zSC}bio;Uoy%>DI~i%Jh5!)R;?W5bbH}8OF4=++$>4YX@_?yKH&!yCLop1NtAaI{zv}E088%I=4 zS66Mf=hqZdCAv;Y#&h!RAna{n6bde$@IXd23*?d8+{cOs8$VAR$Ad3;2D30GO4cT* zt39K;H0~i5J=WPhC@^D9*DMD4H#xcHZ zy=NM$Oj&)9YK*QhMg4-RpXR0W?35JF_PepZ|irnUH=oL~T9h|Y~ z3$IVUk6Tc$w_)pTsnGov!xtWG*U++k>bd7?(BCOf5)MwwOy;TSdt)h$^Jv5WA% zzBRCYs#f%pT1xuP3iQ`IILqBvg;xaMoJe@!$WO<39={4sX5&A;I1Hp~YM1cepp`L{ z=wpJRn8$PRwZFKBtIqh&E>2Y;peFC-`s*N?f8az!1_rfqWctLj9aA+x-M0KQc3`6C z9Og@+gqSL|waTPnT5#{m8QZ|yG}~8HO__{zo8qFK!iep`uWXoAV3jaKRdK;kg({?K z8o?dkodE&pp#r5ku)tv{vlX()XSIZdEd~kT8V?;nlVUZ`59-Ulqm3Ip(R?r&HQ=fRe%`NP&Hmt;K#?BLMi3fKK;>QA_N2z!Nvpwe&ZAsMFJ0 zzlh|Rv7%amS+%T+fssIqP@r(OVykM&j4f3OOn%#9ebHPz1;Y-I(^C|)TfuBEj2&H~ zaE2W=2}tgj=E!zP{Dz ziLlF6grZM%@YMOSm+o*){At@4E^)qHwo8QXUm(8C!{YuYL2*OCHF79rFWN5I7#xQo zar}3O6TTxtHam(I?oUYDKJ8XMB&L$KEpw^;0V)%IrM7Q3<4+vIbaVG8&) zes(QEMy(1Iw(Ugl7m8e!b8atiaNVnk_J1)4V|`KZV2ZaXSSAN>o%!HdKbt%?sB#V+ub%Q zpnAqnYO9~+>kRK7SE9M;on5*CzJ)_%>NGhFn~D&mXr~UBZd(wUG%01QJc0x?HM8(= zZ+maJd_OPb;|PvlI6y}2yr};!pY!C$cX0XS=r zzq7w=*AF;e;~_scxH(;<)grX+L?Ekh97~!M-NuF_QTh=_L`5nv_BU8-hVq zMZ9DYstnKTV5ceiALFNBU;l0fj{KsfpHM-6h9Q#?T|KE;^LhPA=4#+u7JRGAzm`V+ zw~{*E@5SQF$>K*#X@oeb!eL6f8QS!Bkq5<9^napbi{$ITJpYyRPaOE*74gw|zRE*f zMR7sx+|jJ^j^a24pI{B@@}h`18-b8O$8<8>yKukS+Hx(aKISy~{#!|Hsx4o`OZY+4 z)OTksj_0wBUULD4XM?ZgluqKUW7ng z3hJ0f#!{GX^D6<|1Eh%(NeoqhL+_0KCQv-Rq2K<$B|#>g_DMO~^NuVwD}=cIY-?kqHS4>CRGN!NNZ?yqty7(tnwgzz zHs@w%rY5SLn!xOoUwakay9)1h_)K4z#Hn<67-ar(?nsh;bZ>QL(zOZE&4p#(*=WM2 zWUwoa9Pugjj~r)n{i~f{yPY zJ~_17GDpMV&Tqn#rO6>Np%nUjVhzKYz$8pvyF2I;TAzRP(fO`QC#Q*`Dr9DoDz|~v z*t@+-Y4!FV=)4;(er2jITeNj~8~#)8d>Y}7?_XrW;#{K>G8T3kbBm8rIQzakp>O|y4AqBJ_*GflT*Xei%jYqJ|0v$f7$cYV0P0s@w^GYXxY;U}jjsd@%a z9sdumuT&~tsS>qkry6pFv5MT7nr%mwl843cvvYHEt?ugTujhPX>afN8@%ZUGaXc8V z7d3(M#JLth0`U#i5zZ7?w6;4rvwDLShSTl`akXBboxS18BWMNF67+>>XdPOtr6lsG zS~wI_3qa$q&eiAZYt88reA%tfcUD{Vdb2w-2BVdy}qp;KC`L3bNe*G%Y^ zOTqNo`ckJ=jV%uepFX~(8>gFwQaw_ene806%$1eS+-w|rFjfO6^-$B-?tn2fR-;v9ZG%?kH|E4CQDNag)!@DX~ zkQP269Az`dI1}_m#x5~ZC-eczKE+@Q`;08f^0v%AsnDkwdx|QbWHQ!`{9UyJ-WK=z zT{8BSAGz(GiT90p@BeoGBfa5wPagDc?clfD6Zd?0{QKRHoabLC;+kW>kN%5dYB-H& z;lM=CGZS79t^ZQGLl!8#LpGGpD29ATzFWj1r%3aBsFnH$yp?E|jD0Wu=byQQsQ&nu z=kHdeDgN%x<|%UU+b>=m`~EvVbH@Q6Kwkyk)|bceNyS&l$2Vd!Yg&^g z=v`MR(Pc}Skm)v~KUewjvtMxu+%u`b-QU@migSAfea1^t1ah5~<^^r@S!R}XXgnb_ zn|`a^=|QK^3p*Qq*lgvSURYdF-MhoJ9{+%A*Xmp&+cQhHAM#l-ecX6J-Cl+7abQu_em zt~U8vDb`{QOi5POeI{=FfjGWN)P0P2!5H_$I z4){9=fAc&>4^h5Z%)a>c!VQbbRVr6=dayY1+(;#EnWJU3K(~omMK-kw|J&{o~^#ODLnH++{cVk=#=#Q zP`SK66S!Lte0K8NV@l1<54O1ra8dz;+bueewc9)8i-B+j8w}>RU)+9iY!S(Xjwykp zTn71P#+Ko~TIyiTN2!L=66mCW0&-QQ?%b8kTfRraF}^y%ch!CS5Jp7I4kO z#YLZmT3J}A!zTkp34&Rjd4|hFnGBEVv$*=5$FfgIeb8<0m)?n1>jAW1pXXKwbmSgX zH;rEmg+g{J3AmmS@9B=RG?wuz+B4b!S!7JnP1`NIwy7(iumk(S81BZfjB>aZc#h)* z9~0~{g{f2_$Bq#NbA2-|kkNAO7Z3wCvehXRLo%T)wEDCV6ER>4gH&9+T+{2Xt6b}2 ziuC{<)$;ygEf4YZ*c(w-lc#zkBDopvkg?CDJFlzeCft>W4hwa7nM5!iACd0BtR6#o z-1-NAUGN2fHutP4VD4s~ww;)Rx%0`1@0O>_<>}T;sWdYgAihNa)QTV&p!s3Y4?c;I z6rcPg0%I)mL2Uc6>Oxg^p0rEJgRSZEF0Z|OrapQ8zf=_d%qRKt%O~+#)p(4=i`|NE zKbWn#M4(^vrE`f+CJbK}Kh?O;Vi?3tS=n1NVh7%C6+Z@lAxERRT1=f(@_yW_|^eMtH2qwZVR zFO(ui6G)dCtqCcv z%km}4GcRWI_xRm;?t3uwZk|YJ389IDtyv#6=P=3*jz#^Zk3ZPF0QCPzpBA z=GJ9>aQ%vUnHMO3`Uj_YH@Lw)v^RJWPRXwv(#4PT7Z2WKe{lmsxQT9KKlg`q9R4Bf z=ea4pKGJ=U&QXb&I4TGIYoyv*hgDXk2&XM9Oq;;GvX5cb6fF;d~d zB>sDqe{WrSR=RwUEJdwv^R=v)gPf|Orr^oA^Twb#YHG6nJz4^sgMVz4p^YepWf_Y6 zUb}SZ?N(`y$fikPqfo_UlpulzSS)C2-~m4^6Jp}V68C_KtRi$JZe&^9W4Trd!?*X9 z9~W9lp_*DYWG`^3X@b};K1Qs{>-rAaNAG<+Zansdzpp5ZMd?G*58qsWlpyw}7`Rc2 zfk{%>TQvp1Bq@AMJ4L@FDY)%cKNc-ueXDa=Blwfo!|a&CS>WuK$YD*V`o@S`-4Z2j zr~Q8`=^r<)U-LWZqJC$yGc;{KwyOU1rHdkY-bG`gBHQlFjBCr4iSgAdyqL5`uP}8l z73p)NHJ)o@=)?Ve7D;DwpDB{{5&gX(N}_`0fpj`~#~~6??_Mbovs*AU((*`plG~rb zO7YBY)-SJcc^&~>;qF8FFW!+%30U}kI#F5(_Ci-nG=tI0aeNo|_Ue>um>2BQOMb-t zI|gXzMjj?vKWLPZ=VGO7&V#s>$P4m_!oZ8l=php5X71a-+u~{I-kWQS8$6><27b>k zc0?>2+VY3Btlu#8XeQzz`npMWQf98#INr(WFYvP?SmA5W3ipriCiQ$7`uUr%BHFGT z_qFJxjOmkQ1oAn|fcTegqe_hjZg-k7dzam6)(o@OY)t6-VdH*i&}zf&-EOkD*>nt} z)`Vwa+Yogt;X#osVNJ}BA?+p%3BnGdvwcYUyzd}7fBi74Vyr$rJZF;79A?lK2no9N zH=$4GI?WIAEN7rkDyUAPEnAnrdYCqStNQc}2;oiDr@wT4{>Rwj55CU%k_;)fFu>qq zHFOy_ZksE%z;+cFt^ybq_iw^df2S?*T=N&n4!&rAS-$mF%JN`tZ=yV}$LVfR$ zI(Lh&bKcyz`n5wx(xG{}gNILC=jLP14D@fu_tU}Ai_xKFTuFq(Mew6Q)DNHo6!mSB zXa;4n*;jm zq_oz-t{kMR!>DO;FMXbiwAgkJBl#4`y(T{hl-i7%%s$64pn*(m#J_SN10Ox7usuY5 zRaKjr6rOtqvz=fqpeXFe4rb-?bD{*KqMv;L`pX99>f)2P8R1+b$){j?83!Gnv2 zAFuA|Ryp+d(98V4D_i;=cR7Va9>^h5dtbBkZWp~dyItLS7Bi^gaTxmDdEp|OVe{eq z6H>A@E%Vvq4A*#C?yIYE0?|4x0)JNJJlwguwK@Uqps{^syHRc|gd@ju(JbN{|FtdG zyOT&#W4i%=VSCb49DWX@m7MELm``|!Y#ilSD$5dq{!o`p9&3C7C|v9BkZ?0x3)fn` z%^~o_Es>xeMrzVQSV;|`1Q9Y2Y+fGlwgx6*tim1#5JcZV3|vBAo;7rb+Ukc}JfLk2 z%*3B1gyhTePqyYQJM_z~kj!{2bSulgy0}xLvD@$}5wW$oiDuifD&h`bsd$y8(#Rcq zxQIi3u7IjoQmpAx+%{=_b2@6d6S_@|Qpxbz(+sT7`M_OXb?}~Y+%{N!YbtDcHN%q4 zvakE?8Is(zvLY2R7ImKeEpwOW5LsxHg`(!1AeSc*MtAZ-S(Wcvrz*Wuz#zRM;KQCE z^sx<@$d7RS?p)qSuW+1(CiYyT5h{5CGX5plX#KSQKwT1X65iD`9^!2J`g&##D7dQun+G&U*BuSoQIQUe*+#EIF~uSldPY{nL!>Vy$Ky-hm(tG- zl4$VAD-g40>ED7c!S~=}cPHe)2AbBh89B>WK-Fa#9lA6Pbet}DZ|6?iTfHH~992NS zB{M)sY(JUypW&Vv=WK2+{$AvN6J5|FUwmJ;uK1B=S^q}2)_}HfZ^cQB{f$s^&pA5LoS^4amHq`)|NHCHwTu1UQK~3(Z-hdc z<%vhR;Of*3N+uMJ6WML+#jA&ljk2ec>rXQ!J56fz?v(1gDS}Z^b_^3u9%FpA9WkGn zs-^U!-BqB!#a9uZ8qdRx$oRTE&7=qjeetH7Es*gXSH$hAczBrq^QAB>ttF*)eM#6y zaY_0pw(WFIdV<7K1ZBD@y&JPH23nYn7YXu06FVzttI;|~Gr<#Zx+hk}Q}3rd$wIsp zi%<+~<{2;`2EK}93jLuc-(ITKIjBXwR+1gPIu+}VOy!B&>Ie`!d3;iq<9Vh+TUM)t z;7EAd@<|X7-{K26vJ5>k^E?LK_4E8jUm@BF!femhb=a_zx-KhkC3Z%Y@!X zKzTvofCghK3`S!Y11ntg3s!<)ax$PqK>%9Vn=0I!%?m?I{f-o4hLpajIegNNXGuW? z3Z&7`Q4u$`wpI4&BdA7gW2$RVppJZ+soxM2)q6}?pcZ=PVOncYkrtE(IqoFiVB32I zeSM`rhrYDIV=7`z3|%pTN4ql5xC4XoNtyfp_64$L=lwG?{^IoX;<0IGes0n*CgB4?lT=su|Zr+<-nx1dD{5)KBTYR72>8{P;RWH}c(C2RoF+_*0Wldej#oAU=OlO`V zS%!&RN4TvldkSH`UQt|v*bX%T&yo-LzwwxfdGczfv7oex6s?98zFh+upnrBT7nC+c z3XhkDqUfR1xe5fOL;ZLNmD?6E_L;a!MfVv|Jh>teW(sI5L4iVOm4vd>HPmX&&x~Nm zNWTL*Ynkg8DHSp1wGx6!>G-dAWD9itK$|o}Rb~b=vN!Qby{h78s9ZL@^vDpU&h z>(FvT&y$ApJkD|i&QTp>AK&RJN*@3EtE0RUQ34_lB?n{qyF(0qFar$A%K&54j!HWi zy)fj&xG&PolMg6}u>oiAI-nei&@n*{RP)0J6oe>;E7D&|KKef&TpRYuBKh6{C7jCN zm(ECU;}{^AQxc;yg!30h7iDfXQ5+>_c_fF(u-V`0r}4C#9KXAryMcz86RNhEd#EO1 zLA_mtRRUcvhuAB4uEKaWP1v{|?u6xW*BqZIy9h0+4NwX4?;W64=iN8pV%Ml@DT;+z zqGa|EaQYBfc5pOul7UgTY3cWJ(+OS^z|Xy0O@%iX^i9+YHhA{l8)9gvcYNU>A}@)^ z$`=p%{s8PZZp2|fndb(nNyk7(d00BnSB@YEiO#Qwk+H6^uoD(chPYc13&aIX93Z@(62mFDI7MZ&m(S^X+9Rt zh2h*H#*&3j)q%foYKkn6zE12;idO~ahTr^Fekj*WY>{SInOmHzgssI^IO$X;s?OBn zRH2WkaS!O5%HrG~LRds|;5vDop#XlCPj4TR;(3ol3xc-2>qQx6Y=TjBN_s2UtDh*u z>E^z>dGz8C<-H-Q(>Vbxnd47dAA*zh;^A|=1>(68ufN`fGzFHxSLPUW&!(15VCpX* zFE8k35MhQ}gD23Hbmz^YnjIh-bi`JElTZ0 zg`MT0f^AuD^Ps}B(1G2u;0}=6)`@hUcxZC(|ATVd9VfS2uW-5COt9e7F%M_ja7b(S z-)u=;x@fY+Ma3jLwx2ck9itAeRzYP4~bka|!*@dSQPHT3#lfH(fmC zhN8>{LPp!SD5AZ~9||Z9K9maTD{q>dhC3?gx!!C!{Zm=qk#))!p`taaf8iEI^^drj zM)|r_v`#PHvZU04oDkRJonVJw<{kz`ixL!-WZ`j!h;9o}rQT%O{R-8gM}dAtS23nL z96o&X7A5(IH17rBbs8Nx{@|@wLM@XmYNw~A_evj^o|Aq#8#mL{u)+c-7xpRL&QZ^EmWoXmBb*%+)_ACmWfQ7(ecv75E z6z$LHMnANEfuDV`9Df5r-LPg9s=Jdyre3+sWouoA_U-x^C-wtJIQ-vB*Ve+Yi0b zExIUwd!PIToK!MrRh06<2XD6gcXJ7k>sa5oF7^Twz;cT$!3X0KPmUgYBW=W@buBb4 zoCMqF`SE5;_HV&}9)`@KEaG4=VaQ=(B6_PD>p!CK7Dg?Wy)k+FGq);5mdOxTiUx?9 z7re<*x>aGM_}#bEW^=x`q2dd?I;AG!$lSrM5%p}}ox>I=T( z_|a_WIiAO=QvrEFWuMT?`X`u5Kl-FB|B&bXkSss>QA#u?r0*g+jtn|^7u;KxBk!kX zRYN|>*h$$?XDR6gM+hZdP3ywXk)TJia@3@2S>HRXP2FIh+s05Ns4qM;DMKL}vzLTj z98Z6EmzMlUL-aV(L^4aojWzXh?|Q7I1Jax#Sd<-WG9Q@|MLlw*mjauh9d&(@&1VSOu1fKr1ilR z4?SNA+B^h(VKjfhXf~5qIP^f;SUDS)bK(d2?q0roz&cUNP_nt4Z8%ft^MUKDE$Pps z0Q1V>x+20`^)Txq{@-#*CtXN8Q=8W&y35v&*XuzLl!KtA&$h)1+PT@Ii*6<27vR5A z*cGcunQzBmz<9zVq%emjynib-@4HFbJhADt5TOon^QHyhcrtuvn@)=_z^7{L%v#s^ z1kOkBOa|yui5tGhOsBgxGYDtZ_(&>Ua(URXLJ8t=ts;t$0kyB)^w%`OYCPcv5 z61*k-N8-R)czAMQ&MpOtU%2E2idWhe{HJ+DrK@9dX+1CfSJLlGFG>GW`nS?+#Jiq< zlo&=v(K|+QX0vQI2VcJ~8puAhki(uIxqjI5H}QU4cIo6RwAXU{kUz>mI^rSZ4np>y zezJ)8lI)$qO`U_1`2EK?tKAU5RaFCG;9C8Ge7XLi9vbSg7Y!yC~ z?ofKj$@!ed=?l^?OTQ`of%MPd z+W$=mDUpUG%^$MHtqFT(7|`;@d%6=O9)7`QXE+U9XR~#aedp-)8#pcw9{aA3=D18O zxYY4_bL?V%d0%aWz1_TY+ey`eO^}~GPYPvKs0;IX1$;4oU3=t)>z&=szE=R@nNO?o z1)08>C$|ieYQ5`4A4y?!WVtIBs_g#F{Egn(-6xiV_GGf}GzT`S^5r{;22?Z z(h+Gn8Iwi$6J`qKb49`jtAqenJjGh}?;KMv3Kf|DxEGWENDXvjt|7nrSGjskG^V^f zAIt~say#*TdF?f#^R; !AecqWWwnu>dq_2UYMO7s#;oOKS7v(^z{gR}Q$;jJQk z8MzVsi(=&`K;??#vx(HW7g5^^DE&k34bH9VbK+;WcyJCcQ||sJ!`=25^LWQEf-V(+ zR(3bfvWV!)!t6v~ZINOz&r6)}7qkoMuu@ca;k?dGX^z3Pwb3c)J(vpt(cV{)KNWSS zu;mtmJl_ER5QOpi48l>);5^AV%T-4&rUhtFZYx3!tww!)Bn@of6@kH3#3nD#g9)j`G)qI|ANY?xt z`)!-l6;94D4KsCr_X@uI1tHl3z98M=H=chQzwzt^eBXrwzoBLRofh|OJ}TWV-HUiz z{o*uUaX&?aLj-fJaG^gc`#IeM?{<86qiXR{)J zhN@cHHK^VJ6kX!2SMyR1aOzsKw!f)cFG6GgW}#m0H8{Q} zH()TOC9=AGeSSWk^+3?=fW(0ztsOu)6&X@T_`zb`$4}9Zx+YCwoYC0)$VhW3D78xY zyunZ+WQCpC<@wHGXE^ooHOz5`SsPycUg8^@b*4gT7tEAJ9;ywZrbLb9? zYmCPPDg25#7l#wp$KpA2)0+5u@Gp$#esaRvg!3D5qp{j(<4U$G$4ljFdlkKD=#b$#Z{cKS}Et0DKj_9bfRgugVEk4?G{b-qOy_ zg(7wT4+h6vMbDpPtV22xD;N<;)etl5!Pk2{xR-C@G+!of3kLJJgx|2rwJkQMXuw_A`}~-T+-dqQCC!=5|Fl5SYKR zy*VpMBA=rK))&+&DZo``p7_+|25<|3$xo6$p)zTnQWdsGRW;uwOJHsOprt%7gCUyi zh`EI1ea!>ksPR*MessXwKf9@@a_#+mJMK%*>&ja{1phJ~{yls%&d_2?uq6I+Yo`TT_zxkmP-H2fp#t5Elo${?y_rgb94?w4#v4 z{%?KhCv@fROK>j3m|KQ^uqz!0tp+nxigcwSO(iB`*n+Af;|heoVKH4t3U>h^kS*Cm5*R+JS!4t5XY(2w9}E zOJr)v@(Ds_z&C z`)DS|eGd5`T!Zt(3d9z@r@xdGi(FPWWe z^T4UK%~qs^jzJ{Dag5hsdwwOdUE;*9YdtQ@wqaWIxKPtUHeW>Z`b||LBi? z*{Qg0#rg7m8fa|3clQI+GrD31`t7HXwA8;=OV)Z3kM^)ZL?wSn zhZYEw_k$EJNFSDdMEXhTE7I4c-@axS4C*(d-5u#H#WC zulgZ+!yB$2Y4Kmn3*=f}q{C;^A{{=P25aBQ+3{c7O(s+i|J;9)3X@m&IO^w;6UdHmEM>@KgPaPe{?vXwq{nU+*V_Qk) zNley+i&ZdQAQ_&5Yjp!CLRaL zPjVSHLAQ8!UN?b%Q8&B5|LGfVuc>=gyl>}_+O)0l;Cy}PXKcy40>@x5^dtH;p!zSz z_G<@I+|4_)ahn03-GomUf3kTX=^D=+KRqUM{BYrBS>d@CA8at^JBG<$9H4SONZb@) zldZR8?_NFh?V}Eb`@Z&>Y?ki8?*@s}1Z*TNS?`*F+J96!Aq}LrLGAy6%=%4Y&|5=M z=3y&YFi#Rs)6JGvga$y;HG%yW_BK1cY`K^Z=phee-%P!fq3&-p)v)~_nTzVybz3(~ z-!{wbwjqk)_j!_aV|SaQ0@CxoZNL*(44gaVSy|W_Je9b<28yb~fJi;#vhDBe<}<^A zfq>q&v9}k9Me?rg@A-Be{_WaaozjQoaa{U7>D|y{UzDCrR^yUI+c-@{lIMU;EhCYT z3=DPPww=PGZ}zA6WtQFI;XiRt3ww!lwNQ=t0=62)n6)a4^Y1dnw0+Y6!PI#wA`nyn zd;k;ec9O|?&-U9Wjy>GWm+W%A&HIVdM6mj~-DkPWH2Q{sur3=ORZ&bJE#aYy5u#t#J}P|jN+sB>m8;aav)qN<`0;s%X|4K_HHy9zOt1=nsg z0+$d)QE3TGPIn?OmD?4QC|#K%yH9E>PGA|XJz+Stsc6RW{gN8Fea8vq1_S$Ty6;A6 z$@iU^XsYHI6SiwufwQ7L$&_EEa6>~5r8K7n@`!UZqHr~ArF@=7OY&r>>h$B>%5Wjah%a)yn zh#<0NeBg%=#AyJ-)Sz|zUHd*sYOUjQ+uMAiYa4ESaX$&^_c8bD6i14Y`k?>k(L9|> zv$NL5`OT)lO$4=TIspuCZ6-OqlT?A2TwE2GzU5PqLV_{S>Onp9tzb~Ioy(25(yEBO zey|faE;gQfyHAsN(K`3X#XReG1lE*)=~CPX;I2!!#B~XFf<}zzq%4OB*kC$HZBAMT z8(rv@JS$mmA7L5IID%y3MVA13*wF~)21rl5SD^4NPBPor<*BV0{i&RvtAdze0u!pw zmAN`dmotV6ehVn;C61dvEa~e@_UKx)p1`WE_t&=8Qwi_x7wZhC4=F9k_QF_+KER1X z?AdJYlEa?|Z6NipaBg-0l{Bc=64`NAoUNlTymcLJvW$3V5(18X) zKot7wUuC=c%d-43A;iZGd0EE%&xvncHSsQ$2%p;ZNVC<^RPIiCimdnI{+8AW<6eK$ zBb!=C7N8qCFUyZV4xdkU-ZvPO2ZM_PvPjvhe?=AkO_dQX*`4=Z_TcZ&U-n)u_zHT! zb$^V{i%9t-)+N!MDoOmK^?-&Rs6s7m4ZD!syW-nS4Y6l!b07l@7*u|qOuCb#63@=Y zm8-miKoHE!2&sboWD!zj{=|vF#e43#DCJmF8ux8llTP9~<$<2!NrqA_nI6vPi-%CK zw9R3<$GShg6FTOZX^ePm%Lw?=6%#gJ$ho*?rBQPU*fHS<$RDPNsgQxhoJin~z*4z5 z$ob0KE9MF70#C&hJz58S2r<7qjA*z{!WSU>h;NtVJc*0xe9u*(I-P-%tUb<`TPK!JD!vCSruS8d^%c>PE-8r)~ zyEIb^s|aOT4QprFlpoHP?0V#zs_YQrpl_~Mjy7(aS+q=t1i$82efSHu2bEJt_Yj%PyIt26s34|l$hB9{x_A*ce=wnbSXSfN z50S{j+sLc|V(&`%ILh<7twWE07tf@YQ*eT`J8}BK)N?q^N)XjR_h_TXE^PcGsh|y;t6Xd z!=MkTvz-SpH83dRJAGuy%EmIxXul)fBi%1OEIlf{T{;hz=X;CuP{J*`;M=p$oGiwl zfB`kq^J*bz6bJm{af5Hu6%G0)P0>Grhp%u{HH^l5GTkHUW8w^&>|YPIgPmXyY?rs; zpXk9vnp0Ur*YF}ha8l^>34dq}TGv96_C@dJt z`S=p#j(9+6tQq;3WSrBNPVlG6+g&^HpEMpTQLtIw&8(Z zV+UoteqG$vSsG4#=5;aJ&6h4N-!#uF94Byz`~2MpHF*C&X1F>`F(v^A4aywjVZ~gNZI>c?tw3fs}O^ou~M@uQ24Nj{-XR|RSbILIngpkF2BLlZD&VX$mcreVf zclS7+weK9tGc=)An6tdIQ*Ng$x6kvil<_PlI{XT^lh;I)eTv`P;fs_|c;=xxI&a~TS-g>6364{}e zHleUe|M*=Lx`8=ao=}-y*e~RFnC4!s5~`CpV}l6MtC*?Bl@Z5_yG4Qa3pNMW!#OT5 zI^T9VxCp|>r+cQWtE=bN0}Q@I10+CVAOaAYBuMS>&l!mn$>9f- zh7v`IkVH^y?j9Wz)XI`ES}yIwvs`^JG$mOOy;=*{Bd?Z_kL;t7btEsi(y>f8#AGtjHHHB3`_B@!oy9_a3Y2PFH+1t$KC$kE)h4fAW@&GdZ!) zoow3en@_h@)w;>HqOf_i8H9#o*6)>rXeF*1VNgHPEcUH1Zen9ZUuS0wG8qRDyK+g6 zge}0ymSy~Mn|nmV2(7jbwW`o=Nw;=fxJjtW@me?0UPRm7HXa(Pf`%KkF|obI+QNj~ z;WJ7{o>-`{%;}jv?~)auZ5cF$Q_L<_)w}DQo>*TUq}q6b1nq+uJ)dEH%kuYh(?Rz| z)g$np?KE`b`Ur&vP=EJ(wE07mjr+Zcsh_@9xwhlGo^CKQw=1qUN+z$!l^=d@l;|_R zdVkBC@V*AW8m0Y|bQkk?zERrIUaDnP(D2(Es7RPhr9P{SYlglV-dK&I*T4cL_Iy?` zm&z7&zo@8Ru_uXh_-!KI^MJhtmYvJusdy+m@Y((P&&PQ>r4IMh|LXPoP=lFB*hI1+ zdfqk~Ts5JS9bvh2P$#EPZyt``OIg&l>H-1pZe6Nq9>ksg6ZZW-x%&Q2hxPpg4tyQbPQNuieL({ zpAUU=nPinso@2l!|q?@tPF*U=3zlNb%x}(Unp~LdDYDe4= zAi|Vd)5-AF|EcIONx^?RigWq$hG|)*WfDi%9aLI$RiV13SQcAv=JLJFlb6qtmr>h; z*Cdmf(sMv@v+&jsD~+C}i?HBLg4VAbK_#O+JIT#L`JKyl;Mq=y=4-mmkVZns_Aqmb z%6-k)hst-E#eO`l7oK%|+mtnyx?47Fc4I@tK=Z*Wl)9dPE7MB!ACcBshTHo}o(3@9 z&>F{hx{NS7gK-*fMt{8b$$41EjIC6$EVg)ccK_q*>#n+etI&Ext%hL$#Z@Vv!4X*T z-v(>`hglnOw}~u*d;B$MssYxJCnna5ls?d&py{W_dZ=Zz))Dk_&_n<6W%>J9nTCLc zYwWsUb^VeKN}lXE&FT7LZ?QhpbSgyGbz+!_`z|*&&pID>Ks3+AWC^N*t+l4IKi+aI z=UziYKpMAmw!b_vvD`n~@jOkd+IFK}Z`eN(O->wcLziz$gzY;_ur@|(uMQnZq^lUp^j!N)n-Z#9v@vz~j>AV^ z8$v5eLwhSt=`^!1?Dw8&rZrB9Oh2wr98rD4FoDfXs}ynTLah`q1cSY41VtHSysamc zCb|tP8@QCSOZjF(iArr(mR*~w<%@mlw$6WR5S183QQ76|c9$hC*xXR!$uj68@4O!O zdG~^;aG>$K>8rw~c(w~wZS*43TDU0^B0ZHjkPAYgflCfS9g6;fd&RWyJ6Zw8trZuVHVnt&2ZXbYc=p z&#`}Ssw;N_^T}E2Ajr<*du_eb(d{2sWryBO6gq=3O^7h1DKju}O=ADb>1o1h==i=g zbqDDfy5s?Fai;oi@;>{44}9S3V@Q0Ba+cDw%4_x_b+9rR93Mlj;noSMyHjP`3T6IW zcS`q5Zrq@2$u3vt^D&V$GHh!%foPs4uN9)!E@Z*X5p_Sgh97&z7*!!zc##oo{-wo~lKUUj9hcM>>mA_F6(Vag8XzgT>N!ae!Kxr|lTJjamR62&YI^PFY@nJ{jplt{ zPUfeQ&@t$H^R+V4gzLH`ko%~G>*%qGmWwHwQPl6EZ)HdCGxvZd>Be0i<){PIVjY70 z0lhV0Wx^irUj||=$973ZDj`7NjN;p&WuLnlvr>9%*zO%@aZ`txUL&>vwIO6FaMMLg zEh_L%q}cn>hpA?IetqUW54oMlvfey9;JiI%R1^}-M=CYdVAgXBtnfNpv&I}(CP&9F zVDkIDxQjRsNc%d}OuvXpkh_hic#`BWd@3@H9m9EggJ-5reD>j8xw3Qhs;pa}Mc76V z<@S^m-seb|;T^rii#PVmFY(C19PzIKAwW)KYR3(C`&m`tco=wieAht`_~oltL1U6_ zVw*_h5~-GfT~3TFkpe#3OP$CY37AIwEi}xYCv$HER#onsU_J|Pi7RMPw0vW}T#BrUQ zDT@A((>^*ejjpe^1jGj%q6-2g_9kut-r$yuH;cN!p_8LFy;$J&ZfsoPm5ORJSb@{r zobg<~$?%t90r`v7a&w>i2GnX*T9-~po6=e7c4k?9z4UKVq(%(S*>3e*#MZe-I2%*5X46ni1726!oJpJ_3TkO9_I-TR~_VHau<_GeO4NDEN zC5G3gLG@?2)j)f$6CMwvDEcHv8b%mm_McSFb6l0?q4uwn-omZ*%yYhpt1XwI|Mv&W zED5=WK1=JUY2$qaD4dqLZ&#OPhi?+@bYIdcB2agj6FJJa0fw3Xw`5(b&8dVCS#Krk zs{BS+m^m?~+l?JhBfn1#*&?!Hs!##TR;ocVi!zL;(>1j-qr=Her&mu@>ct2a5L7g$ zTHEHn6dq($c8CPQsnr9p?L-QK1=CF^AmaI#c8 zw7S@kJH8WPlfa=PHx^e9)!JH?AVS-zAFk7+TgL}N79mpaCKPTKF+jrh3h#HM!_YtP zKs#YM>m~sqBuilhA$n&C(rmR^_o`tDTP8W_XHHSGnad?(56>tH< z3{VJ#RXe=8I7#C}b)bs`Kps3^>n4w5qKl0G1PT>6ysi_$-l{;BlO zq<`UHS_~?E)U0mNd z>dU%D6dlxQg{p`!A5pbV^l9iKc?CN;SA`g5qk~@SLF#>UvaBp$JMV zj*KZfpc@+sCUc*heny0)^O|YtezhL`l5Z}IWpqUL;q+x*dEs>9@=`tV5)W+8*}A)*g*1z4vm zz*0o!MW!kk2Sru1Xi){<1ANrv@I)?y4}-pwGK5j|%|=6729AYMNXw)JGd_-Ov_EPO zsHS`~0!f?dCyLX#%G9LiSE@%+2gBShDprP5!A}0A?oCWh7`Aihh>)xJPE~433oI8( zs<*m>{$6kAqm5}5Iwn`(ZW(i(e|OVOpSbC!vGhD(J5Ex!11svRnk1ZVO$Whr3*^nk z3l}biy9xYZEt!Zby4jhv-r%>UL-@s1806SAIbj=R&7{-R31qK1c`9+P zlCP^lPyua7)pU5ut>Dfi47mx-Fe~n_Q_B6zJvv#bn6~9%Xq@cR$gSG?lB-Ts91Y!c zJz^-TVd>VVJH*r-(>5*Ja$()(!^|@&>n03SyVALKM+gJe)D0a03N%9=$eQBOSl1Oj zk4^eZwx2u@v#r=k7S=H_X>x5vTouzO6WV+DtrpjqnXP{@g5|`<(_9x(A`Ca;XPWYT zK6njgyDY=2WM0EpI-Sn8s<3&J!XQ&_Rv1#+io!6?;8R`U9?Hc5jgW;;G1PH|)$d`L zRo^$XYGO&m3%ZMVUhW~4ndsnKp;|CSv(JWRf49$FZ&%InUSp`1-`~ZBj;5HF>sn?+ zwHH_xm4Xpb)Gk;NZ9G3xbL0!~LslpTercFqK5{|#Xi_iqXtR;?WCf$CbKb0QpKFra zRMGZ?J3K&l4sZx{2Z7N0Hwt|{g@4NXvlFs3bjeO~ENCpNSs<*B6ga?Gqi*Zm=+Eir z*6+Dz9i8V!O8$d;-hIzd+0%QLeTL{Pl&QPB^hfT2V(uAJ{8_vYZ{T}C-y;iTL9)43 z1)&JnI$b@9bskpHTTNjJ=7I{kKIm$#7rnOYdv4czq`o*Yu~=^=?WsF&Uk$?5+wYue z*CwBssI{XbM~_rH^~pyjaPQUcq*iTk#~p*3opwCFZzp6O>VO!NBn`6sR4LbhRzZ1X zvG&;E5VRw!I*X-=6RkC*8trhy!eO4s=8~cYaU2lZk(Ey>a)-X#a0xfnr>k=dLT#4#x;3XghV{fI^CwAiOG7?qU}hXv z5m;no!h>iG~OhbSZAZWV@TmEw^K?hwa_uL;500bcK&*+t(uILp6 zbE_1mvx;n^NU~++r;F3KQx=~5I{ra7I>68uP1BE>r<#$Uoq%TK`V(stK5n=26H3|| zZL;kKmX=hU-H&*?Wejp2&z2zK#!x(47pUdXcsdu+aXEbLnc8$RQBRbL>sA`2K()D@ z{^a81-R`72D8&*x%znCvV?7%_FqG7x*JUfp)2YMr|CREr%*z4Yddq&|^M*Vg!} z=fxwfQ}ZP%fQJ5EjEGV_mtgiyS?>{V*p-JUr{R}b;Sc7Kg-?o?ejdyGLSaPQ!WR{G z3tVHGAYW#g9dlQWMj>lP@z&1|Rqe6D7rdOj>sns7A1y3>Sumtg(4vzz^If_Rb2JVx z3{Q)(yE60y4i#~RfW&1sRy+MjT3wldHB=n&~t{Zmn z!S{o@6nIo~H$iLHtV5Bd+uA$Oie-5=A(5xpha%IkwZl%uwN#l}zDJ>VyIxg+r}c+H zm-pMILf!|OzZQg!X<4v>_)igNVWwj^)%s}-w7uw%trAUTpxl6A|{Y1Foi=#Zts z?TTHkR0Gid@2OW5YST(R*5NDVVWOCAA65;Is4AgmSaAr|^r(ahicx+?rQ-}~mc=jj zbAV*@K3MA>>-1rSW8@w4Lq`9u%=p~R*4_D?f1g;sX^F155O_qELF=s;(Hk5Lee>_M zgCGrpe+&l#0?y=j-=|?H+ho>>JZ zY55`k@m@}##VcrEwM^eiBBP=j$OA9PDz~Gnn4hO&dS*qdL>T-ai&6Y6ua&4O+KAx# zqk;k3lNiXUX}}ZHH{+_|dD-GyCMwJ{=A@5Ff6!4LR)%gS9GDLxv;8iC#xyG(mX@Kt zS4(jpc|!SeuBS7Ib($#$X}_h@_&Cq(aSt`KEx_^HYDNX%n-gWn* z42Dj5>pc`6GUR)hC2=-U;Gy^M3QcTn5&zqnUMM|JT1;Y;<1EE_9#WZ~XMVxB$9O+X zrobi+LJS4N9F5itoUvbo89QR;@xn*o3Py`u!7undHZg~}ek#2P>((jenc3~Pa@!v3 z4B5;Icb@^p7L7B)clbQpbjF?KZ-1LvPnqHZWW1oLr9I1-p^RW=P?)J(#nuieCxzr) z7DmR*-T5kdc&;!r-&5SExsw40mcky%5{9K0K}g%eVZDjd z7QpygWpXsvM7dC0CPO^tnXn z=(nFO?Vmw4Px5u(@5;XQ$3S=DKWzo7SqbD-k?Qtop0hJs^BiI5w^FpsqWD{L=pmqU zZ8@&uPIfxQEH}N?P5Cr#?%;$8qEKGUqGZ-`5QDE9)daX3*j3+fbko!w!>_{S_}dz$ z1!|(5D_*6#MjD2JsmS;FMfvuRY#=7Cp~}fB)eNb$h6|)0!x?Q9f_DJ3ImWR!u|^10 z5m#NP1hZ1Fut@jQq`S;Ea{FtWP;ri^q@%wq8v-mz59?QH9x}y1esERs`#j50UL84f z56TCA+qI^wu;#^~WreX<3x_U$o9AK5>U%TH<_F~yyImPqXntAJi3dC%>C5R2I=Za$ z_@B;tnk_SLtV^si-ylQNp^x*`*bVlI72CKOWzEfoeSuiG5G&`(!M%_~`VgCQIDx`_ zC1!gB{a3e(T;>ZySurd_!CLlT(LS<`m@)8%52>aK{}>xCyuux2L~h*jGJ8sCuDh}R z@k3j3Pp2K&WDZqS#?a>9|`JA&@`>bC!Rn70M_551x-FZ{*c^@=xkxvk&uGTVBe zecl^u`vtzD7uzzRdl~8tc7pqdevHKp^@oP^ap9@A7s;<~|A1y3t>Vfn+E1PtVIRD0 z;}!2S<+hqUr8^H`Ifsxd5JmbyT$$ zxv@fts_InrOj{3OF=5_dfBGt$qKGx6Tbf%7(~7M*x)s2ej%UfBloa#MwDc3w&tmV| zw?eOO|I)Kb?+Yf`g9Wc_e|v!Q`$Nti{Q0R@w(~tHCO~NjC#)eYNYW^R&7d4R+ACia z=BE!>6-*+rVPPVP%GOSX1opX#br!xFJ{0kj9E%&#cBH-Eay^^a@VkF+yiM%cafC!U zU|GIEFotZN4AXen=D8=CW!vX(4v|zcetP@!qwuE(eq^u20N-*#u5KxMyc|hB-q7js zb7dtVdS&eC8{tMz$q*?A}bc)@or;39SCkn2LyGpxLc{mScI z95!gbPzF564q49R!@#pPt|r^-9R|I?VqH$c;7<4^I_o@q%evd?>f-8{fWhTI5FLvc zFw&#m!>Ud?M5SvAlyX!viKWPTw`Lm^YJ{5k^OQ~=o@kny;%Ry*sj$l}NiC@-osw>sUXQle9J6Lj zX4>9fuC9C$&GtC>NxxfC9fuM)Fua;`+eMDrNA72Kh0L6w{wp<4po>iLjv1!!o4`r6rrBC)Jqc=Y;e?9)pSiiF_Y7 zGg9Q%if-8|Q?^`m%WPx07K;dvosu&xr=wj&#&V;<`NFdCIAajACp4J(<~*t6uMsTM zHq4=V{bymO5m18l0J(sLZ!u0pY=4f|Rk|wby39QOhTFEK^JZhCfm@7+vuBoCGb);H zr5yZ9)c;&mLdlv+zFKM|UTc1|_-|`6w1*-~MIQ7cWjdiZB2H!=6-!qW?yT0!2ri+z zER!;w+j*YC^TIJn1nDjoWSV*JB1;*Ev1%`Uw@m5_qJFj9U{~PKRbU3W1y_u=%&pC*9x;sGFO3bt9NMBQgbH>i)xoeb^tsUxH}V)Db2%- zaE2i`{Ub>_0~OmdqE;FeO_#R~!s<%>vK@HZESkEik>u0t9 zdBdR8b?HxvAZ<-lTKOiGJx{Gr+oqL@tn1WODID9j5?8S@)mX7tfC(#9Gq+d;e?_0y z_E1y((NN2vufTUPA2W*;vLzoqHrmYTJ5IYXjN86Gg}NuG zuQAaZ?(FT04?R?0dFY{V<+V+`>dl;c-70+bQpA1r2hQm2cz-PL&LvBw^2+;!XH z|9jNX8RzA$RUhaiUylJm0P0mSYz~hI73)O=`zDDP1jeyPZh^8 zP^ufm_&r(P(sU9L@-?c_(~3=%O(QXlm^4xB8;%2yrN-|OctqE>Wch0{kv9=5b`yTB zXYs%M{YMW-0V?$}OW1xeS`@0&Z+IuZLFvJ$ie>p5C%kXS2E~~7mjq6dDa{~O4$CE< z@@QK=EBEpg1MHx$iKxT!p~W&)VjAg;MSDG##P2!jHsHI`T}Jvi*)C0pANcdSC30v?t0J@ zFhDHh@L$Qy2K;o+gWp)JEozIGIB(U{a`R3ZbJAeM8uAm((N}X0{{lRG@8Ts@aJDYr z*^~)JegRi=Kdr++qoA&YJ~H@4=xINv%4_iaSD@@QStVUrzNl!whWNa{#$4fYJIY~( zMJ`3DC}OZKQ13G*(810}RCx)?dd)A%>dy@qO{#BGFn0T&Xv)Rn4Ov_PqpvlNLUq?m zkme8Y_dEdwF9FTo?$>#;{3iB7N*_l!j-j`f*K}2>$@~gH!)akmKFcM66H<(Rc->W$ zVd$Wap=bl1zYw>e(!!hlvP@M&x1#h`Sg>MdjIG)XnO&KkJ*PxL7|w~iH&-!&Zn7gA zM#ZZ-p667(iebnXW>?tb7YwV~uBiEK?ph=jxkZrHIfjpk_=peVo_Kq;w@G+BWQnl3 zV{0sH1gk}N*t32UeIz>FxvU~5`DQqrwpi7B-CQ-#cDz6o!;;>BmH4e`Wa$XwLa1U? z@2lzx-Qod&ch0hqvrpQNuCWS7uT!deGuWVtUhUq*zMT~zbGtYYYPxNvq-NT>c9BPY zwbNO~mfF1vVULA|HB~pXiD?WDPS1(0H2$zu?Aal{QB~mFh@GNkhC!igxLt%fcXKy_ zIh^y#=se$pF{oA)^=ZZWHQe&|N#O8C`+~#v>jOK&Hkte$492HbrJ_DfZ(;XSKjO`G zQS9u8JYF)NAJKMz(SRqUbE6rn_c5b(vnI(Xn~1=?%ciO6mI)n# zSh}3Gr6jQVr2oYHH`Ypi8ydYQsA><%F2o*aF}oZqK5lS4Hbqn$lcpmuEfK z3l}H8G`PZ>WzECbbx&b7oq{f#MfR=bNI;B?JmzMXyH`fMAn#H^3xCU{Xp&Ldh`toq zpR@zrn0j=|&~aZ5X}QQLer&S(Ev(JAs*@`?_x+Koc%Gt`ah4wm2P zldfv5vY&KEgc5dmuBXB+oc&<7;5MJR8T7(fQJf8ihKRLfRl5XLWOF&whM!TiY>@&t z$&`{k25T1WZ%|GfcG7qNI=gAAsu&X(1Cjp**O}!X{T~0w-&cCs#;6>7N(_+PR*pWd z0mvfI4BNYQt<~}KP3FmzP4o@Q_nnQG{sR-kPSQBnNF1C|9>Mp`&ZhrUv4;##%1`Yz z!<6)Olt)}j-Zd(ZST-R+C87+zTp@I<4g%7{U2`jeg_pc}qY~);1x;36+!(jpR95sK zKcM_6?+M2&&s!cZHtbuB@mpe^#93arTa*KPIycRlDRBJt!12_az3FO=ar|^CO6t(9 zTT_wk63>pNwr)Knm2K3HG|Rk1hw|U;-|Wv8$mdV*)!t8XOUMTf*v>WPA$HqHJD2Tk zgO}OF_HmqN7$)P5Htv=P$2wq}mg_UmP~h&vnI&sWOdvDJbAq5VPM7C(N>*QP_pLRk zrc;cXad2EUWMk%Fb-c{#$4Yr`6C>uFHHPZ3=1>jYNS;1mm2-K^ef%+7#qBI||3)e_ z*mFA|pUs{wHD>y3 z&VvK#L{DMdqw2Y$t_M+pz5-RMc;T$WDmX$v%GHg7OV#~|-b04&N%3AHb6ulnK>w`R6sXM-szfCMlCd5{$3hKTrE1Hb8go7-@8USwFm^8)01AhhEc3WQHj@V>8Yu0x?PhQr0*SV{>Bjx>gg7LF1Yz)Kv?00f@rfch2O1yGhph%V1 zDe-2TcwW{=Z6lsZFj!*Cus005W0z}}ROc%~0NW8lW<|EaQ1iD5tj{CE;(hf8-$zJt zII}ZJ(C)Z$I?$6%8DXYbvZeim08!l88Z}>gQ)Mny-sH6A>ZVnno1HL>>9H;P4wKeq z-QG=>lFrRlOtU@*zkuWHyT%WxG4fzowx(#WSjnaaL_ERp!&g`y6hrO3%vlq}fr`=q zg>!>GvWGNKMr6S)`;Mt}xLP88n5dqpR~ILd@k8Ygidw0TgL%Uo6jpGQv-9!2|F)uX z53|SQT|dw5fV!}m?PV_$itNVdVr!ePF84Hl@xGYJAJli=&%Cy7NZWa}WYYDNqyOer z5>or>ROem=nN_S?4XFXEhLPSX4_O-rXi$R_xQ4mw3ODjyfrZM`YH8u}eIxN@%bBP< zwj3no4p{CAKWBJ#H-P`#x|h$P%Vd(-Kn{Vvk9!yE#q0C~)5U-g7!<+tYG9~Z6zQrF zEF6g1mSSs0#W8?yv8H%d#c?W@r`&UZN-Qd}<(Z~ujp*_wLn0cm?6k}_#@BsgmxV*< zXS))|r@dXV9v8(5@sZJ`W3j5VvM7^0P`rHD$&AsX!}Jft&V2zPLU4;*0C(s3a(wJA zN;jijVa(W#anqewv$vXRdUuZFC&ax2&41ZA^tV+mT^2pp)ZAv`+aS9y?l~Qbada`v zs)bN>1{+e^o|9v-j;}(SoxGmJ>+S1c8tt{1e_Y{S9Stq_-`rD1ZVWxf+(Cx)O;ZYC z?Xk|{d`ls5S(F@*yC@IUK<7}3ovao1twPqhI-HqXqeCa6ieU%w$vChLg}$)6URmc7 z`vAW_GI}aP#))>>8CO~1=S7Y%#3N~t<>*^yK$R%5`7!J9)^$rtH}W4k#Uaa!#6+Uba&CYBV`Uk%Q6#Y*h*+0*IPS0 zeEkA<@Zp#aPvNJgDkk3i<%(w9d#|e+zf7oAaaB7^&!(ZRx)qC(pX5M>UqHlGo0L)P zE#sP&`>=!(p$w7<4^fLZ&x`s4Lx-|H%r`rMae=L49N@Ssr6eP!O3y1HzaWU04qvEaI&ro)61`A>jK!j}r-WL*_3i z{XN@5IaQ8*?Q?|TZok)s)kC(Cf?Zs=6XshiO``K>#a;>xv7bjFO!*YFAInzdsyYQK z3WmVYStr zjb&o%KS{*&QRH8~q;OqA?eS=rUIuj54yFU#0yNdf_>58bpmOYxIgqP2p&w=e`<7`; zI!x6=S=xr+6Z`qd&eAoP8I#3>>)ZUb4_~KtpU=nqcUaOhTYnSb72e@>W!{!p$wgkn zMXpRKUn=En&M;9`mDhS$7q8(S(&+qAP~Tzjo_Ya7#O0KjCLYP@ON^*~cRex^6i19w zF&F$)iIV41w@M;6Epkg|{(VQ7e_vgik&a0lBKKBCQ*SIw<5nut(Ibs5BoYBunY&`Y z*N4BW5!+#phM3sd*t(+Inigx>&wA!cxbskI%6KF?3}xv~b9)us#@KWs-9FPjntcd=WH+4=EVw=SAz0XJ{9Y z__r$By9HliEGGUX?iz7P*D$#{3{%Iq9LMsVzhlg{Ou^tMbeO*3hOim^;3erLHWw|x zTy&F&FlQ96i8hqTrm>SWX-G^*XG4?onu<(tC9%;j1n`tRNHJH<`rsO;LsP94J=7Of*{G=PpcBr!)o^7__NoDgC;TCZjRaZbRy38T)C{va+0tJ>I7|3@Tg|USj33EobPj;yFt6pjoQtw zHwAz7;D)q)=i$zQ>}r|62d_W#L&;ZfIST3l7H#ABZ!bQBQC-`Fd z#uj6eRL%>D{`RB3GCZdOss$T~kMa-?7kQjm$?pY&0eqfEO%;A^OVT9hCvTQMB7F)o z(~Y{56iy^*?l#gHR?O#ELd0dlI|RqD(vcPpOW8sDUyCDMLC0|!%r(QmV#&{VzISA1 z$&&IctgSHRAl3rrYMX}!lh^b7a$CG;BPZF}-Nb;>5dN_O4Pvu# z)TRb)qvLOEsp!uiBkm+oRCp^j6`~o6YQhpd(zUl0*dfB7Q+kQF<6uN-=w^O@9kEDB z{E$cNpG`cZ5)T)6%DGJ5u(GD5L%VV1TO&zI)U208LIJ_`kC^x|3Qp%e=6U?;B62~z zF!2y)&chf$Eys`Z7{>mFbUV`l_v(*b^e{tgGY0wFS!?4Ongth3VYaw6eZ3>TUPmaj zk#DyWe+!Ab%TKmBZJ&~{t%HD};d;d2pB}&aw=!mq!n9Gc{!NTGAi7SduFFQD@J0s0 z+}j^hbcNE{yJistRB4=Ti_eC*4^xG#Ru5NI*;M`clv1iG{=Bbfa8^BB*5J*uLrIo`r2Iv&sWGf z)#knB0xh@#y!s9;cm{X>L_y97X6aw2I{Ostda+PFqmp8JmFEZeyjXVlFN}$|xHPjq_p>Z2W2F>nk-g6c9q2ac ze(4eP`$J3AoN&xWAT|-in5+&s63z8e_1y}u5s6NA+T3PB5jc`fO}{Q=8Z z;NnJp4(R>)$zv^;d2FJ}o~@V_7i4D#B&Zp7LtEB5u;%vwaX^m0{7?stP*r4j2oaTa zRc-a&0jf47RK9|6)Y0KcQJ~GkRtMBl_(!~GKB<_Kmg_ppib3gws!o8ETyfh~G-*(V zwnZ77m*T3l-c9a=JD?j|m{dm9P^8L;vW?}HbQhnk(H@X~Li%($uL@4oo7^9hp^E=Q zSf+2vB1yCk1+?%BbeToi1{N*a;V$zmy&PxmHm`IX%m<2wLtufiqw{ik`$?s_RBs-g z^gUH};8C4c7pjU*tk5By{_1uKqhOg**V}CBK%`!3PH~@IYHGG3Yym8!!I5_ zjL7pVD%}7!z4X_hGQB36Jv5h4f4YjO8SRG@mi7!3C1p#sEcH*Sb5%K<>CUI}+ffI5 zJ6&WkRXIH!X6@XMqCr$3husiqzr@w~NB5_YSYk;tj?!|zvIS`ovyU9S?XW|pF?@@9 za<9Ws72zwGs#;TIzlNPbOBe30DNiVtZfb;Bs{C$QJ5YnysP>3PRn3I|G?i-G8i+2L zoBe+9|Nh`VlVebqTiNWxGCANd>htJc78th5Avj!&GsQq9jV;#^f|*T(&^leHPO=G0 zsh#=F#Y(g?OO-&DeH)fJDs}DZWUEn~_B9ow*c3NNk4#S-u2<(1y9#=?d-&YRO8YLd zG`(^At!tHrw*?~3kDV}y?4Ua}ITua^W&{)m3eo4n+Cn`!w7OWgjCrqCsh$0y`;O+h zR6uX@*}Ofho$0M~Bv`)TaM2dH%g!C>=ay3=4uRtjLdH zKEbn!QXq0X0X<m!|&J|Nn@}sLJM&ej)%`MF&i5ELx|e3*cpFJ*=tuA z2~sZC|5Ex};HfmwHP+$qJ%9E=!}E*}8lS#RHO-$jP4zY<%xwVI;CWec;TPSQ2U&4c zhkyN^j~K=Wb>G)_&V2lCSm0(q#@x&BvK3~R!dz8STl3^TEGU>GC$7JzT35K zEQ7nvh78N4u!(B`)p8eJqg${T`TE(6|ksMbn+fV&{;Ok+Tn zRAq%lZm(#{28a*O2&{@jDwb25~ zc|+80tspe(is0!Fz6UbtDD!~BiIBQ7VlRX4E0Tu{*3l`eD?YGapx&!tUjS(hkF%}B zsJ?vS#7cwIjvPN(165@%Iu=e)T4|ycq&eACWLs&vptDYd)SEMj)i`^0ZBm|IKYO;{ zgjsWEs^4)d^Zk?SUC#=MPUk!&n1tsmQ`Dx)6qI07wOIkZG&okBHETxI370l+J-y)i zi>K!>sJ||9X7jaI2(n-b`t)JxDD>-7&?SNw2jm$6W`_3=>`TmTbZx)nMg4FTz&b1NJn4Us%yLTg#WP80`QMvK~Kji={Dkd5( zUE+zB*LQ+UzDXk?GLwJ#JvhUEGomP=HTSf0uCmA5qIeE0E^pQ zY1^Jv@;rdELMKC+VZqE9N{KW9ce~ONX-zsQodLOchqMKf;|(m^%$uaQO7D~|N*|Oy zCVdiQ$1g~qlfEGRvh<|%G|CVioyU73<<7|8Niyi9Oi;AB&{*s0Q0+EmoIZ`HjeWJ> ziq-OGuisL4-LIyD(*#bNBwa5_8IU9J?nRQqvJ{g6z;9Fd>%s3*alT)NUQrdQ8Lc3g z3xZY{&asmT!_cTQry7=`{6I2PPfs(KWXm;Rjn zn($x$jiN%4|CYV$%j^|%VZc6n`4vTE`an=qJxSW36XNr^&7{Y#V+`%9_auNo_P3ORxG{)F_4Ilfhq zi5=mEu;&gRW0uHp=*YH^#CePDMU6T3*{0H-#~$~TD({rspX0*s0F!Lr4l(tN?b!_k zLo~)68u0DNlg#mK=&xbRg?0VKV)@n{ek>}L6(aZ|yD?f=`KhRQsC^Z~*{>S5ElEWj z4Dz}uJudxMySXh~wNvi6&0MZP2C-1`p(8E}vhyBx{&B}XgZs*lu=XE1ws`5KBOTcR zD_DPa+I8gWglSGxWygKX-aH*;JXD|k?cG3)A_sEO2s_nk&f6i)b}qy-~V}>d;bgf^>nED&%S#7eS4@qK@7bbeg2E3MjY+`5zOYlG^YOpTmFkn z9OgoK2@mRp3!ixvg^rVVOe^TdsBZH1PGdUZ$?-wRb1Rv+}tT#2zNT|-0JjrE`Ba% zo{=+r_g=s!-jShGaD2DIClYOKn4|L+>E2y-#a3o^W}yJ+aK!^;WMTb7$few6lH)H8 zT@-4@1s?Np)<}F}IrRz0B0=&S9F0!RQ?FSM79$`a|aZY8ykne@tI^V}U}s(Ghxc1=f2M z?aUF({yL($gNT%I<5lMY36F>8CsJ#6Dm;Dn>3C|^jB1)cb9iaKO6r#{KT%(*_~9LQ zt&rur?udN5y>xim(I>l-RNzV-ft4C&0=KEE__p zpS9vlw}uu;b1BjVsdS#zPi^O}acbr=SGQdP3Ih+P*%C83L+~-IHe=S6t5>fI|Kvt{ z#KR7XsmVd&5yU>Y%p8jh`x!LeKLe7KEk>SUzOv<RAvYc-*OffK-;QVx;T3qh5 z+wkv^y{PQ8JDv94RAhbz+|L+MhIzln7_e46f`B?Se*2lhpE(z2-Wo8Fu7bqMd^Y}F z=Fr4EH$q={X2XIc@uJ8}b`W+J=8)sM-9ewD4d|Kp*-8Aih;+;Gaaml?5=h&7rMHwl z(1)N}bKVT$o#sQcC4gN!!y6_;fbgK z5*EVjGFArb#e?1wf5XEnve38A1`C7B(RbnYalsAT0TDR?rE4q`bdPy|3shh(BT%Ve zpCkDPSyIw0i@Qh45{5|=jJPxG3pO6HKHn0K_Nw~lA|CcH)Xe!_y~aq+G=aoB4peg4 z*<^97#CO7M*2w)cfM%0r>^g%{m+d^Eec9u0D4$cQuP2!!8~-fN6G`S4F39{=MtA9O zNpv}4=asa|GsBY^)y<(90K46AMYmYrgkqpM5cgEf13!ZMU>UU@!~9zvU>bq0=sN2O zW}?C!Qtr70y=@U5)4IIdogu=9)FW}4&lYE}3*%-f^ZJ6{o+Kwo;2cr3KqfLZCrk>T zfuZ{KNa1nxt~7v5Vn&pJe=63J8n>S zJKRA)xSirpdHEs?4aE- z)P*HQhtD)ikdF7@kA0%L!e&@RvhJ~f7}T-gS-1tWZj8$nv8%oUQsEju$CZHkJlkXA zHxTJAf9&5z(Z(Z>Y#l$|iJ~?;*@2Vo?Py~=iaKG`IUYvQ7JO`Vwm=PQWd#;K1gsSP z#?npp&`xxGdkYHMfO4;}^NsB`6pQa_hZ|8ChL1#&6z6tD%n@(1m2V0f+BD0Xy8_xf zTD$L)eyFrdCPj=Ttv<3!M|R;kW=2PLF;+1}gefE#2&wl4+qjA%{(5l=2mF1XF&RUU zke_%11Cn@IEoi)0ysy^>jb-cN_SP2Ep>r|Xx(qtXg=lMonQJ$ITiaX5!!0;{5zWKx zXbWnK72b$8;37I6ZEauKXcN7&bpd{M8Onk}wyy9?D73Tj2o%hI!~Vn5P8)c|?agqu zf%i5T8;5dwFzleA-6E7AEICY!a!W5OL?QtViw7vOqzzG@^cNdzvn(B;vO^vDQ#ub^$P1C|U zka>8#_*FpV#5Uu&V(EcpqU*D)IF{}!m|(#%izX2{;xpU+9n2<><5M#v$}?oNHaFTb zKPd>~AD^cNy(G(*_{YCENc)s)2Osare~lllgEo`!i}+t)?#Go2#xx8zWnP7%O*-o= zf!Q4Mj>yMH?|zucl=fzK*0)u~qZ;u7*QriL6ehhz!*K$~G5=6i>QiKHvK5=YLr@|r zLCrG#$=1|cpt!& zb!o9USQT14CQlsnSg6@txAR|HM#a}P!>GB5@7PXjtJP{dNf6AP4y)Dh^sVqQnd*Mk zCRM6B-ci4DwrW&lUpFixs2}e4`|n(f)w$;M)^u|YJ~}gNp###%astbB3OV>9{GT!e z^vvq8wkh}eb0WE3YwTUtXcN?^SV7I#ZDUJk*QR6nb#`qV%erk<1FPxQr-GaC@sS(S zknS=8n)ZmN3o2`Aue-^uATjd^XbmYS^_j`$wBt8wvrX6c%h|~0c21nwR1!a~SNoL- zw~$Xf_gRVYxvG|b8@C$=VXjkK<4VP zpD3FrPW&VzsE{Q(aKDY{H2f{QfVzih`2>5zhYGn-y!?-`+&7gr$g>w_witL<1$1p5 zGdi}0*ULwDezdAz9Pc1|ZK$p%3LNuHP8h`jYp`O~RK;>EMMZ?1+4WgvVwI$-+g@+t3_jJHCXHjK*5>3$ZZ57ar1HdJ=0#Pw z(noZDsVUDUc-M<**sRkkbug;Np&!GWmOQt9^NB+xY;^34m>-Pc6GdF%nkHZ`?2jb{^!_4aHH&*HgibuPxU z+HA)*@B{}KexeL>#Mqh_KG|sLyjyys^fu{&^ik=n(w~kXdhfk|!Y-!B_??xphR30E zmy9<~vUEbizX}twakDZ9HDr#nV-9jEb}9Baz%qCPQ`~4bbof#p$9&Mke@`tLQxF2L z32PvWn6iZt@fZ+K^<8JaC9`Wot~k5TEPCyEZtWf3C7Kf%+{ERt4rS33Ce}8GzRE8D zloBAO54EQ4Jbb4W7v8u2Q10bnrZ(8*Nq^%RuveG0?_YUX>EG}ldEMt6QWLttLrr=cCz zGp^Gc@`pe{zD~!W`S(s`_t}BF_|8H5HffFTEe`Kj*XZ6Iia$cHVV|q3f3EJ?zxMp< z(0+s91N(iM`=@|zo5{NjCu&Sf?|o6gNN!#4RBUA_<30*{wgq<8`fl8+-YZVh{n&~O zXJIT+8BJecYc9kn*^Q-jU>aW*S$X2gQFi6DJtyM5PFHD9p+sgk9Ow9 z=^MR%#YlV>zkQZ_(v)M?YGY#7GJ{c}APdBmB3`Y#Ypl17($DqTxqagXvS|15izHFxcss11AdfGG{~hF2 zsrVhx{_0Dsc-Ro1a475q{5SReDBP*Gs!Vr;&!V&~aSIO7P{A}W7cu6hSUf-1$A{~k znS8Etox4*MT^EcMO7(k-;zi1d(mM{qU$Gh(Ta7dP?c-~+ovHP_Jr9u49RajTR6Xzt^h>H?ggR437+y9vAaMb)Oqk(Vn`Su|dAt_4A)^JEfhu;tLMwiS z&d9Q6$TQTUM{BA<)n%#^n4v9M`}N|QD7sFxqf}EjaU5>y6+`(RwN*L;x8C7kTvtOR zH*(&AUy>@q5)Bkxk?Dr2zClB11}H{3f@Rja8qwJ`h2mv}*6wEsVU3EXZ>W}X99D#i zEz_oqaEb`Ygx{2W1sG=86wBN2Cg$P5?Mf-j%guls(8@EXF`S`1;qy?U6@5(SC zS<5j^TbJ8}+O4`4fO@2-hmIbq!IHVM!+&%u0i8)9D1?cu5S@}W%{1Y6RxvaqEg&np zW)gT_RdgcDYb4Mt&!xKG2!e*MQ%g51Y)vTk)>SEFR=J0OGq^lq7+YQJp9r(f_qo~b zH8X>)p*c+F`Iq5a?ts=s0H$f8bNn|E9l~HTRxmXR_NL=#4nz3NI89^4qW_ZeQ>tr} zef1dOm@3=QursV9%*|oG6J-_``qap77Ts@TE)A62x_i_w?SZYcqr7ey`EYPOd(#(|w+|Z`nOF5*F zD>Kg?F<6*S(5BpFH*!w&pVj0g8UAS(>W3#}o51Tp+pW%3|DZU%F!anP9c2~=NdUaK zHc2UT3zf8GN+)Xz#}WpL6Le>z+5BwunMqBB5@1LKcd&_2F4YaOXZx%+93*H{W*ggi zBr?JQVZB(EW(JtbcEzDyo%LrgpdrO1z)WJJZ6&AsPC9xgd-M+{quFl2pnZ~K3$+rd zMBa6aiiagh_O=}ypUr2&h@PkQS)ZF8+-X_s$R!Sa5sm#!i_4F1p3By#c@ zDk-iDt9klF94!1gVfhQz5YX};6U14tBY)1T&j%53A7mpXP>n}rnfP83Bo!I@z83kl z$$8CkRE}w?I+k`fNJU;x#gbL5IVI16V2EM0AS+hVt0Cls1#%^p$p)cEh@v@Oor0jJ z$7Uz}fH)efylGoldCk%uqlAiUMYSpXXoGThUhZ$m+HBtzd*1_^_JCfghtqMxbVEP# za7(VTXFKFJ`$+H{Ij+Zu^ftfPP#!{4$4i;2-Z@+Dds$=J;x#RZk&m$SF&`Sy66QujLN7$-Jz! z76mlHVoTr?tWc?}%Vw75^)as*Tu-t6lxmgUef!=x47 z6z7pa`BMLK4*l?hy+9ydKY|I7`OzMcD$!8EVIh!yQ9T;h=F9H|k; zDq1dCx)-Kwv^1SrJDC>2buC1KX^LLh%bjt>J`4`;MN)FK-9$H5P~R>REsxCDXhzG+ zQPa@d_qTQ9oGb@nfNZi3Z}yC za4IBO(yljzHS~n5g$ZV_#jLe$A_oMMSEH|^J0lZ0L|`VoLA)9HN3uvvS{DCD_Ca z-L#=*-Fw0{d5Jv(i?5;8T zL0YrS@ElgShgd07grySaIfvmN=r5acqUlMB{vT{te~|puhNHry2;{127!OV#37jRk z)M(4Fe65{;-V9%9@)1YY>_(uZ4PW^MFEne>0{jB8Q9pcUJq}^Qq%xvBtCe+Cc9vk} z0#&41+ExQgpQjp>dBhHW%u#|y3V(0+&@mC4FRGc5#4s&I-3+MPO`uV}S$Ypt~Jx_7TSKdEE-s zcB*lH(ZzpwFuiQmcEl4{-5`hNnA8I%2p{xBH zd%6nk1FHo`XQp^9@B4Oz5o^cy)EL$18ym#M9XrWs!>d1Dua&ODobBHM<1&!HMXDwqQ zNQq}yv#P28uLPPenOPX54*Zv{ADT%$>pxN)dXi)cIXwYuzd7k%=|SM%yQKF^ACrC> zxX7IyV5Nfw1r`jGBI@BPdN$9oYxo8M3o}(fr~_H7Kpq$|SZ7#?+yfHon6Fu6H8Uvigp2wf|`jp z7H1KLwDsdl++KNa7Hh|3b8TqL=p2u8`i=$vDb!Z%O2wvzS~CoU!FFNctQ}UVslLs3 zI(8szph{qO9RF>qN!535u!tr@HHGzE9k~|y8z0S#^VSgW7nwgOW`X^f^tiNhAnq6Z zSCH<$v)hI24|)%*+MW%HALRb$0mqkjV+{TsR-ky|RdjRjTJRc4M?G4i%@4hwGckD?{ z!G>+@Ri`~1#{~BO=M1}4zgrEvRKI*JiMsh3<9-|<{e6*RV(70I@BTwqAS`WrYpc`Y zf9RXd|7?RSVF*3wSW$L&YpdPne~+-h%%Tt2&;uUAc+3IMU4Tv6EyJOVewG=HgIA!} zCpgV80DGpJF${ZLWpy^0#+pU){-z#PUC>1A>Ev^c&-T@=^3ivYfzDG^Z{B70v#MoP znQ6_P_o`@A#T$xj|0*ATAAw2Qtwx5GO#PbgU;?hQD*Mwi7{dEm2{5dn$fAV&hGNmf zneMEW`dgRfpm`7T^B-O*76=|ApJTB{vZ{AcIXwWo)>4cGU1x!rk>JL)ahzh|mDlhP zaUuLgnN?{Yw$a0!Te=MjfuF-Pmbumz5(*BF6pM-mrTcS{f*#Ks)|o=599!^lg5}-{ zV4c^5HRuA%D$6y+7OESA?)o6s2K^+}JLw=vTb;BAI^envI&Xhnk2~E#0%}XQmlRXz zo_%xBi$_FQzOemBlLE1RwGyZ`-;I^9YRL^5{#jMok6mA_1(m7_cWILZ94dZ$pWb;9 z7A$FZxs#@yo#Kb&dN1*Gh6w*lzGDK%F|9QI5lb}jM%q~xO9G()B@K8^j2dl)@UL*GXIG*QJAo9k1(s1Z3(CI^7ls(Xty@w!Lt` zuKCp_fsT?^RW+DbmDruE%A6-M+>I60Z>egvGEt?#yriiA{hU+Z7jM8h6&NO%7HPcf zYl?QU_%*%WnGH|vsk3#=~xr)Q#W@^A6 zjE7YmS(&$?mpJ|t$ME)9Sw4%;9n0UzG6RpyyxamMWCRa-K)KN$M;U{aDFQRk!HhFZ zNaCH#sa(#IH(bkq@abW?K3(`odI_dpD0nl!H*Xj^IO7b^KEjudrYb8y%?erfAjZ5B zcMf^_r3l`pR1SYS*t(?ZpzQKTnwq`zO zVtladQP@qoDNCEemJ-o%Lw#4ETFMz!ozgt@3@kR)cd`Uf{|xh;Y{&+#$fE_#ly&W$ zXy87hdfJoBPp@W-Wm2L`qLXMM= z!YsTZ-OMtsmXSyfaE>17dd#ECp}y$Iw^jrT@fFtxIME#>**4olS0DUHj>Aldam4tn zrT~|ZPzEIR!mjF!Kb#jT%QtOf*??(AUZ(V$+#Lq@)I@)Y(Y`)d9UK!V7g>TlhDuz{ zwS4K&%w4K)t6R0%jk6oGvm3JyknLa4Odq*Vh+oml`XL#>&Rg$;qS7 zm)^aS5gu6X{OVwJ)~U3PT^0{+tTdRv$q&BA_;FOKBAz2!nbCIxGD4qP%z3PoG$*gi9w+9Ziggk@-YHS-#gGU1O26%^{B|6gM1ekzrn- zqkplPa&c?xDO*2&T(_^XTr6yVC)(QR==PSK?c<}JF_I=h#=(q+0Hy4AQv0 zuAf113_@XOM}^H7m>^xi4YNsACkrYagmaUgOwFl(q!5+VwJVRC$>Ta9KU&I$2{T8m zC>-8L$N7;gDB90byEYp-RC8BuqKfHxy~}dxDj#V#`~F(k*}((%B;++ z>ZQ+A`S#p=&w4S!w!Y|1WLAMQ-E${f%8ZfMz@i0t#mt~O60Co?|;t{*} z>>%I_UK^HS+Q2SrA7D5upPk*ooEc_zb@rTLkhK4QZ$xBdR#sI@Z5X8Lc;~(U|KI<< z|Nr~1l#MGYAs-qA&T1-3MKxuW&Y@bibVNkS=3B@|ELEfqM=mV$*zTtYs0h%SvNB}J z4RW!8D-H`+Y6`WK#sx-n5@^42WpUz0%VHl+Zm=+R zGjdRA?7_sSJVFWQ2-|Q6T@ZCK)FOJAox~W&xJrDABon~zUOu4Z##3ZjF|=3zZz|Jw z&l-yC)mveVl4MuPwGka1mC0oj(Rn=Ts8v}eP0dg)%C>TP)zuU`oUd5QlUR7_7323t zY`e0obS%^%m&)1_8b3_Re^{Vh1P31C5gl<^cY4;1etod*dvqmoX@vd?ScUeZ*?s$yY86=$n`@jhZ*9A#e@3rFI(pI~48 z_ah!Jh_LR^BHjWQ46d_r;Yh}7IDgqo%E^tAKULhnyC3;e<^ARTX_xc;I~zs^1*vml zxxfq3#3uHhRFWf!y&GQrf2pjd)s5S3xJ}vZ?ug%n3V(T(_XwBRIjFS0(I=QSI}%MEt4brw^%SKgaP77x!XR8 zk#0AWAxv%eDFNp2xc9Yr3}F9Od)_@`C?y`(en08|jFbJO+M2f&Th&q+h zE9AbiU(2;0xl^V5pZ6zss(?@LN$eZfckIEYU4zQIzQcT5nM6b!AFySG>L% z-9MPE19g9Yz7DDZdvm4aJUNn&u?$I>DK5!IddaZI5*)|z9MbXIwT(xeKfNCZX@YJs zJo}CN|I~SOL(1*UO6lIzDvuL_a+pcyRfCz-m-Yk^{`84B^)id@C9Yxj zdbu@YTeI`l$5i!W*21hFw&p$hF=M741oau?WAZCOO$+Ac0?j$@y2o7_x92Q(J~(DE zvoc#TnRP51@1^29`EjE{B@87#NP&n{jO3wOs4qVIX}-EXG*rq$Fi>0qjF6JI`= z?Vx6Q+5|mqNXMkRfCFJ#!wozJXkZD-J}7BTd8R)2M|fd*QH@L`p$Zd z66RRduxjXx=>}X_4kNTtU1%)z=6aP`9Rn)c^-|p^*(C$cw#SI2*FP=G+rq1XDdjaq zCoY33y}8<(s|E~h$5>FE>#c6W6p7(ZIWuKPKi*$%*GigcYNc9xxqn=DWaA!~TWzI2 z7xB8Bw_zF2w@UZl9M>a54&fcncbEq^!TKo?npakJQ&*V=72%EY{vx7ULt-DM28F*f zsuuwxS7l7?;;znQzj61?wV@%l-tjrN;ghzR_A6oPErG-tqzOL0W^pln>Qy8oi;Vksin0)^yYpe z3^QspL$_acUjBc!)|OhLx;y^zZ%}Fp0*ii{H?zVcBw(1%HgZ(DND7gib8{)FiF0XJJ{ZT2O7YmX7p%s+l?I^X}|? zZ&^t6FE|?$y8YnI>9!c%PU(;~ZbGxs9${K{rM&TxuPjgN$rQcN{|b5Bj5Kb7(eR%oa61Z_qUs)a!;8l_HHFjCws_ z4|rt{T3UY8yx5c1KEEcz8CuH|s`e7R;znJs{$Jd*iyp!_FuKOQ+B5xJW$J(i6+`1gLf4tg7;{W3sBI&$c!7qCl<@<6O8lsd^S2jnuQ~5p-6>Khwr! z`a$U#>4&BN`mal_V&i&G31jrYNxYAC+<(I&4tex~OOt}`Z*5)R?os@()#-d!gna=~ z5+9!s`Lq0~h$OL{wxfqg41K|!()nyJpSK*m&FII7D!{O{fJ@#^@U|sG5?{wg$q@@W`ea+U>l|tmZ~$AIG8of*&wdWR7;^{8g@{sHH0}~5{LLMj1#zjnaYO= zIV{uc{2djlVaf44r(}7NZMLGQW!ll`8L*i>rE_l{xnuu);Tl=aaMV^LD(RBTBR?OK zHl>r&ZPInhadcbKqI3lMkK3ekAcZHSivlNd zqb->4=cej$f5Ho!TKY96K)3*_c(z3dI^yq;lo`597lZ~J_h_Sltmxd4l5N? z5v+p_RI*q11VRFVriHW(PoaUf;xXBcqdmXa?P_(Knp)R1K^D~a6MVA8CE}wz>YYw! zu3rE7F#(PPK1+VO=8EzPxQ#PLRX)q{_nwg6FMUY*nDnF4=cF&9#WV7n3`QnZ!@_mU zPSEAw zGFrAhx4rDE&;P&-EI-ozt|scrXtGOe(_ww7WIJ zJd=V#c?oN{!_u~NJIrn$mEIw}5BinopuBz(%IkkXB#DuZ7H#-gu?(jc$>bNjcnbBP z_$%=?DZcF&%12bCU68Ef$UX%uo?D@KQ1{bPVWJ3Y#ga;&RiMEB+n`WlRVXk$^2csff>yn7cjR zmhuL4ct9KYgOFx*pXThPtB}F1`!!WJzzdhqI4@tnc&Kq`f|rHHlTYr!3+Lvb_WS}Q zxv&o}*CGAJLpRJzWeP6|Hij@89cSik(MDq?%$xEe44AXwx6bO-F_XqvN%P)Z4Cdz zv(^}D4XzO2*l?n9C5kLB$SVAkm84--iPJEdIwAj%3Q!$NF5co)iCcF~eY`BH(h^59 zk2&@*WW$FKo2d&lnzSDz6_uF{hg8kR7)7o9#s`sZ0x6{G+;S-=@ICtptthjlDKd+3 z0L^g!w>=n>-?-2|F`d>)p-m%is?7Gv^&px3>~uQzQ?1u8Gv&4a{MvseYh(>Z+Z|rt zj*ycwx`XxFIrbFHG)~GG8B&evKt;feWoW)wbMDJ%}QYt{4*DIcXic_v|DOtP9F{3wm6kf z$vN3`K&G0@32B@|{Yw2c6OK_Yz}c2b3>UMq)`P(~4j<9F>^})fRL@rCo_fG`s^zVX znVmOp#laV>TBqT-W+uxsPY>>XfF@qK?rp%MtvB!7XOV@_bu72w7m4{FlKO~pI*wp7 zK>{m~m(v2H(IW4+adLX&oNrX-D5vYNWff$4J5Bt!?)Ao{y7Ba&EJzgbMtA8`2d&=G zv8{jumZYR1)C!dADUu8btL~vt)i>*UWEB)jzA=4TDeBX>Ek;k{dYp#++#F6Ju?Hlr z6gA2Yzsnkx#b(7a)nK-ZJ`;z4+HL7gY1@?y6H#pKAvU^D?}~u^gBUu-^7;@|ZJkF) zKsTdOGUUr8={MN0_3yaDG*oJkJMQS~dS5qTLT?#{iMJK~2Mt|S75=JS(oId_@35_d z-#y|}MZZma$Z*t3N@2MEA^!Cjd|jcBiFd1p&0hgKMjk^5;|#Qbqhrz;=}zfh5la~u zC>ICTNO-SEarSUHE$|QsgbSj_Qq~2_|655n2&JZ_8>XonRQ;zTPD}&tH+Kac>K{8+ zI(Dot%Xh#L?jPhg|19J25HhEyT=AQaPDUL{Q^wr<)bukVz%P6ji+KNA=;2#XNdf8Vrh+ropVJFM}! z$rw5hD8FVKR0G*5it3xTWx#ZS>as$8(>Z(kv}Kh|KMZ|51a9os&W&QCu1JOy@=@0D z0>Vl^&aqZ9>)c(vWp{i9@T#ye(8Z}P%sa?fU-`?#(z%ObS2the;<2{Gceu#so93^N z&ln2OVR_7K99vX5vW7r$oSf6 z9JJUQ(rM|O^nmnU=>t42*6Y{8vB`I?kq0XLu%E=N-8+5*n&}ATE~g4w-$TiNO$2xP z{u|cLTCV8>2lRAd4|RWnhnyN4Z}xVLH+yUx;u53x4iGRey%DXhS_Qv15o-%Q)X|%87g{Lh+uJ{aTkm?k)W}J&{phZJ0<>L;8d(?C zfuU$4uvWjmPc*j4b%ALz8gT5G_F!Xk3@3D4Mju7O3Up422nksoqivde#&b9!P-~`l zGzAJTOvq>9Z&p4?6(X#l19p;*zq_jwI`ofajg(}0TTzH(n|7#clR*IMva%_wrmB>g zR<>7GbX#RpWVBay2gvBN-Yx>F`-tgUZ8tTaI!I21*o3`ZaS4Zl6cIX!Lj{ZNqv3eC z!JpVo=R`O`GKI7$a!RJ>c2HgWsonW|-(@+m6pI&eKM;$&#XSy=Wvkyjz!=bSgtX^d z=&sGzpOYa%cnpe5pyE2=3$S0)G;;^zddZ(u6-$5hRozn5cQVIdhOVG5x!iHiR-~E763iQ$i ze*EXQ=2EL9yQ=ES|GOTPl=3~|#)Rj#{oztcE|(v+eGuHDZ`*G8b$T?u=lR?F zW|+%lOP^VAs7YOFoGd9`5GhgkrunV;$X;)p-fk%~^;xpW)71F!WT^}kyva0`q%4~s z;^}?HG+|<|m`6BmcL5oydTSw9L4n1|6mMVs4{S!6(Jh&6sHG6{3=UIAF@Os5FXp#y zn_ag9GCMrI9Y!O2298M^2|ppRs2{hpiVD~L5pEe=rGriETaOU!N3_RrjP>|=Lknd& z)Qt08+`45K&YKvsC8XwgW?H1F=_Vh{g?dHNehOj%|}xeQ3U*Ui&DzMDPFEEmM(?gfKJ$ej5&@bb8c zHxV@-f3ZNe{#43RzK@P+FYpzc+@c_Druj^%oi^5+(6qFn${;?+Wk`OMS2xe;;ziH9 zc*%7yU3&_%GIgFWd+`FR%1FRgCkh{rqO4y>na!ZbM6qQ1)64MkF1Y~>Pc@rgBf+HP z;KQ9xcV{%$L~IESX50a^q)llJX53=D6Spxl;FyW#6G!5`n1`(A8(OnOfMJtz1;m2D!?#r0=}@&1b;B8zcDq!a`PCFE z;`eO$bSto)vjTod@gZwGwt6I$p`C0{kt*a>Ox`hnDt0y^&$lHg} zNd9F!kcD851lGH{U$y;r)!x!p+OxF?$nfp2cHd%8Kg@aQO)#^buy%}pXyAmKB={$=J9aV0k#`0HZg?=xoD(SObE+01caEZj zwb^#$+s{ToYsmS2UQryuW~ix`Rl0g+l1V3!sruyzxZEQA_rTn7o&a!vhB(M@^ktP^ zhf?ia#6taVMl7duMg}~GP`8$)b!n6HeLh1f;^?xa6s%+%0!u7!aOP4hy+mw__fZPa zv%~ax5*)mXoPr*u_$4#xeyFmbsBZ)ALMTJy;>A_aP%O@dP)a-?>=CN!?{VlBBSlyH zJyltdw~(_=L#11w+VJ}>FnJ|a(!j#86ps5=Nkb|@E$&LI(0^Z$E{Rx`Y>hh`Z61-) zFmaRR?nh+=lXgj&Wf#M>G`OpVCT=)RJSn4@U%8K15^!edLW$5I!y_Wf1tgDgR)(A1 z-;Eb%3`Pt?B~*(W9?VqlD^KMJ2?HBUL%>S1q+PJ6E-7 zY4*L0$%KL4D9kjNqN-+TH1`qllUAq1PhtaskDf0kq^RjBbovOxE@-rXRi8$h8V7+dtZJnA@CTvR{{bSkkJ0n|-pKVA zIBC=9+n$PGKkj3=G8rxR0D%=3v>)3gvcd|sdt)*av7V0Y8;eNLvo}%GV?cdBrIYkc zj{s3XuD=KMuarIHCuq&_<)nYdZMmn*WkjODcKt!!`;hK=`iDII2et2{fxk}NMh#Ygl(i!$fJ!>7KXXD?4eD#jLi~5>JMk>%y+c(Nmc()_{LnV85vQ`|~e!{^-6sznOyt6=c($ zuIbPrjYLBBQSwQdNU3g1e-3&V=V)T%d=I`ubt-fjE?&y@_(yYf%G;DQoyuM*^%BMt z^5D3D0nZ=_*Y3VHB${lI*n zX(sWokXzoizxwji&8H8@GX5Ag><72&Vt<9jg`TW98v2z!R8Imj-Zc=~)voRpt7q5H z=b+m0D_rdaEY9VF>cxnR>9t|sc6}=I#TxLTBKzZmntk}ck#;>B#*Ak^UDLmZ(gGbf z)vk}mo_Vnhc7%S3QNs(f$#amZL=SN3VwIiBGmD3>|uQH)ESY@*9jTw*Z2apiWa zr=e}mU;{B)PZIQJQey7AB{o9K!!ky#-xR?!dKl9laXL9v33@BEd2IMcs&Vsp62-)F zs&hdlZk{NYV&dwtJy)ZKRdWrmWSG>}87;-WhhUbLVcQBkGYIib<}t-!x}%wfR}aaG zqr~N?-!RNl63kT{TaA;bU$@Na@si_QHZ*22Lo-a3D$LR`R! z6A;@cM6A%%k^NLyiz27#ti{M)x*kUJuECo6l>qZh#hkY4~42{pljSEJWSNL?*8>H%>Wn6rq{Bklr*zT%JeGs zhlBnvE2G$-3;FXi4%cj0S7?+6`--0TQn9SA@r8Zwv zyImDd%0D@81wjIDj)~iUB3{DBK76}9_9UAyJ;>r|0p-^V-}f^vJWSc=&l9MP>B-g~IoQ7JiV*p*AUp zNN6eg_KjT4$NcPB(J9?cwV4&a;QPuvlE7e(G`=<>>+^I98_$zzd{DCc7o^H%N@(VV zzM96gFL<}_D49^_37sa@(Hvi_Ss#l+PK-k@Q@1GxHOQ@llpIkt48ROCpwM~53H>szN2o@6Yh(-P0S`jH#UsIef~htCIlrbdXv-bE zIm;P0(?{LHy1V?^D||iku=F13e}?v4ghA_d2RtBH4`Z<~^hd_Nm^&DvyE633+-tc> z*2^N+RSuD{KC2|<{u(+a;u0suJ6=QYM07tq1>E;H`IENBT%|3bHCh5pqjf~a?w>m| z4*DBBJQ@6u=h7SS(SryL41X-v`sjHN*+AZMoJQR&lVxbIV_T7l?CPpU;Ygv6mNhl7 z{5sJcdFJpzM(tHKgouAAgM-o4}A%V9=0_s_3+J`cxYvt*Svx4H{FTo3e4bhT9!B)NThmH29%x>XW}a-AaF_Vg%^? zmlznzh6-49(80fYuG3aju3kJ!xvfGWlfDk6FDI>~Hv7n|G z*hIliFTaUmoK~DXz5y>)J~xxprl>Th$6VAPtd?;%ghI^=5GF7=^P^a>wHnEZZU>kVxqPIY`b0>7MI3IEo^afq_F$O$E%!Z=dXBeQFI!n0;e7L{-v4`U zZS{_|^-aChO6Fr-wTb;SFj>Z6R~?u#bvP8=HRpB`IBz1)R^RcCs<*iKOE^^dN{scR z3*B9pgQQ4BdKmWuMtWFILsB4ZFM58hK*+kF?fKpG{ATr?@2q-DOTS>hiTLpEw+^I7 z$mhsj^6~NoK-6&&2?d+6y~KmzPWBd06N~sO95iN(oL%xcvZs95bb9s@&p17k;$eHy zBRZm*^l}=()NpM2 zl8yK`xD`VQrmmyw^!XHa&Wz|aM_i0^#u>$!J?hVKc%qJinye}19~V>~5)0?s>B3^l zTdFIs67(vb6R{yuyL~jMfJr8wX02m?+snNY(C~>3hI`enKlB0;5uI8VG%JQ1mRhET zQT|NNG;0w_Dxcb2*S_eQDlK`M9yTM(8Pxk`V8Y-1@3_wogCCe)@iN*`&zpkwC?$;@ z#KT^+{~6Lp_F>?oyJ;uRJMRZ7|7^rUXpUI;`KiQD%Kg;qkoz9B_Qu3MUWfM;`(t}l z=t;SsdL44#gZ3K}`#A0Ui+yoA@zdL)jHq-8E2HXfxGlmZgUQ9KtEC|wiUBV5->vUeb_y?^t3x~?NuZ0=P> zY~H8E)1MTluZWT1ze!($Y}Mm0cO}2St3cayo&!OJPcY%|)QhP<0mTz^qDNplTM)#FaJq9#xT zEj{0uWd7~i1CN}IU2WbU+&1v%HT~+`c1Jgr&>Ef_TA^aWS6queuDixx5vSC}1WqrVORG7GTV5lHFx={(ju&kNr;QxG3>BeOv zu-FnM(9k;Ss;2r{`>bNWwNi3QiNV$`d%96_EZcHjM|Yf(uGwb--*ZgH48QJ&%w{Gt zEW2ixDkWFb9rzN2YO5D0p{q1dwT1gB$?+y|53(*D=3`E=wEtSY~A&=i#T9EZFm6g!62sL2ZZ^ep1mw_pw%a#urG2K@zQz^uX z^&}~nu+}ITWUxHIYH@E9_wuA+koKtUxETAjRPJBBgxihzFC(JyhAbMTJGM{SJa{*A z>IUW>?PIFP0mnJAcznYI_hN?w;TtyW4>&+Vj|UME|NgB0AM3Rr`k@cU_r*W{WbkDF zS?eP+m+9sDeeZkUef8R(`0w*q9*Q5lZ>zHPaJ|+T+4_(pk}nYZJ0jA8=!ZGjK;}Bi z9S-T_YhuhP%8ya{V~R5OPUf=`zZ4IMHvaBupD_6j8UBF#HC6o!ae0TL+yO88{^;6Y zS5=9mzH)7D#i1btaCh^R3~ih&@Nt2R+cblCXJL5omLRFE%+5@J{*dwQ? zO`Q8R?S6;Y^wcAa$q2S2r%a4Q%b?%l@=%PZTG~*I7B@CE^U(2m-h|$F>ymQ6<#bxB z^M+rx2E+{G$dMa%#WX5*WHLQ8LVAB02TSFy9Rx63dT;Y+oj0AG)4h2{Het}#O6=G- zI#y^ax^Kp+S*e(+u7)8~bn7F~vNVmo~E*!?iHE$A;R1u^t>++io(utl3MK1vjD z1zpxo_p8y9d|>HR{c}tImhGQKYb4+PfMvW@_wDN!E&Ty#?!Q;oi2p6!BHvM|ZuxOw zU$=ezt%mghJ0Q>NmIhxaN)ZPM>DUl4CV0D<5rY%ENlIAO*b9Gl4E4&tZrFZG*bC!S znS9!F-u9nVwdbgMA6fD3oVv~!aeP4Yq;H?6D!otDGMh4P7ZC9140*er(vy+H1+$7i zHy^Nd%=Ut%e-F${P!?5RYys@^}I zUx6j0JIJzfl*bFx z?JBR2GK{7h7Z>fg8k2ThlO1zmAo4<>~eMl=pBFOL{^iXGg!~%EPgnuV*RS&!$f<^7^6X z^UgIM_vkLJ#c>-=7RHWQ251A(9u$t*Y#Fy^^VpP3+?TXVez^lJm^V7W#M3K#macS0 zhq7;oX=FN?OoLdhz;n}~9Wy&b9uDWIW15}(;FZs&mR1k*v;RSU1MTD}4m-~MYrxxE z3z$6#UO+*okUci&-o|? zwVNOALiOK4^NQ=Dq2EE1Fh2=aQ~th)wdr7igckb-B6EL(Sy^401sN=*?K8Lg!Z3)~ z2?7h)*FndQXauZ_xNCetF3t=;kBhy|XSrq1{GdS>j_jPV=R$O_gSTNw2+v7#=XD zJzm(~DA+9J%b{@@M$KX`mT#vr=&BW592gF8nXxcC!d;|o4iB%=PPPOF)Zijv9rr*P zD|tq%e{5^9#AerEM%!riXJ`8-`^{$mtN8UMF2<=>`J$XfYw%O1DK(WdUf$kbo1yWc z;qmo3)uQvw{)vs**^LwZW>#-sO|gTei1mj_e~tCp$?#*3Y%DBn)M~vmXUWPh+;-c> z#wR~HHYeHMZM(@@aVa%j;{KWKR&RjI-h+)a;t#s$t|##kGP3M^f552Y>n<}E=V$6p z(=O?BR(CX`J6Eq*jiR~dyDXTv1E0*a!+O(RV}{Kr7M5Xqjiz~2W25#nl3wO>n+}e` z`$@moW{7bvT&zkkT#PyNC|XNl9h)I1!dt`2>EzT-ZL|IZn#m}gzjdJmL*K9&o*fKc zc;R#R-uuIZGJMr?LlWyM(`}CgHYx7oD;#}8>deRUG#(}=2wafrtA9zfSO4dSHfLeT{w=R&I)Os9a~f3w$2+_f z*_}jlTZdY%7B(XiHqY8tqed-If<|bR53MvvX|YmSERmquZiZrR@K=0pfGE*Vh+&D^A?D!tNo5N6Ccdfsp$M30)bcIf`C&@S|YHcNE2MRCK1wmVS?pf#g{E z$h_q(B&58svQQ@Rd?=R}Vh@HNjew~dq*Gh!mGnSH{Vo9GGoGOUx|CFy;=g%*s}|6UUvhM&(Lpsa?v-LMC(A@12?e=sEJJ7HW^GsyKb& z8OENWHWjCQJRsIa+f#5-ah*1s$F%q)W%!R|Q+|k$hs5cFs%_iqgPQhWc0poQ{fMF| z9}%a&ix|_->Y@H@c9Hkh+_n~RBvA6{KtW554O_zakPjesO6^jqz1S{!o^jMkN{X(O z66dJld8Ia~mgYiPJH3 zI&U#P598qz*196sLXZVPn8w!7KQO>>2+6!3#jB0RY8?6V2@jnhsDinL3uG;Zu8q*z zwi_bdF3dTcY5bl z+zQ8L#af0AJ))GHQ2!UIhP(5 zXDO?oSiG_5;nUg)JxMP$KSdc|1%eW{Mk|IFG#5e_Diu4πR(XEyYV3az{Ot$Y*f93mYq^Lnu{qbYp!X!TA9&! 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 F?~0aZ)an2L literal 0 HcmV?d00001 diff --git a/site_libs/bootstrap/bootstrap.min.css b/site_libs/bootstrap/bootstrap.min.css new file mode 100644 index 0000000..d056403 --- /dev/null +++ b/site_libs/bootstrap/bootstrap.min.css @@ -0,0 +1,12 @@ +/*! + * Bootstrap v5.3.1 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */@import"https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;400;700&display=swap";:root,[data-bs-theme=light]{--bs-blue: #2780e3;--bs-indigo: #6610f2;--bs-purple: #613d7c;--bs-pink: #e83e8c;--bs-red: #ff0039;--bs-orange: #f0ad4e;--bs-yellow: #ff7518;--bs-green: #3fb618;--bs-teal: #20c997;--bs-cyan: #9954bb;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-default: #343a40;--bs-primary: #2780e3;--bs-secondary: #343a40;--bs-success: #3fb618;--bs-info: #9954bb;--bs-warning: #ff7518;--bs-danger: #ff0039;--bs-light: #f8f9fa;--bs-dark: #343a40;--bs-default-rgb: 52, 58, 64;--bs-primary-rgb: 39, 128, 227;--bs-secondary-rgb: 52, 58, 64;--bs-success-rgb: 63, 182, 24;--bs-info-rgb: 153, 84, 187;--bs-warning-rgb: 255, 117, 24;--bs-danger-rgb: 255, 0, 57;--bs-light-rgb: 248, 249, 250;--bs-dark-rgb: 52, 58, 64;--bs-primary-text-emphasis: #10335b;--bs-secondary-text-emphasis: #15171a;--bs-success-text-emphasis: #19490a;--bs-info-text-emphasis: #3d224b;--bs-warning-text-emphasis: #662f0a;--bs-danger-text-emphasis: #660017;--bs-light-text-emphasis: #495057;--bs-dark-text-emphasis: #495057;--bs-primary-bg-subtle: #d4e6f9;--bs-secondary-bg-subtle: #d6d8d9;--bs-success-bg-subtle: #d9f0d1;--bs-info-bg-subtle: #ebddf1;--bs-warning-bg-subtle: #ffe3d1;--bs-danger-bg-subtle: #ffccd7;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #a9ccf4;--bs-secondary-border-subtle: #aeb0b3;--bs-success-border-subtle: #b2e2a3;--bs-info-border-subtle: #d6bbe4;--bs-warning-border-subtle: #ffc8a3;--bs-danger-border-subtle: #ff99b0;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-root-font-size: 17px;--bs-body-font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #343a40;--bs-body-color-rgb: 52, 58, 64;--bs-body-bg: #fff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(52, 58, 64, 0.75);--bs-secondary-color-rgb: 52, 58, 64;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233, 236, 239;--bs-tertiary-color: rgba(52, 58, 64, 0.5);--bs-tertiary-color-rgb: 52, 58, 64;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #2761e3;--bs-link-color-rgb: 39, 97, 227;--bs-link-decoration: underline;--bs-link-hover-color: #1f4eb6;--bs-link-hover-color-rgb: 31, 78, 182;--bs-code-color: #7d12ba;--bs-highlight-bg: #ffe3d1;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, 0.175);--bs-border-radius: 0.25rem;--bs-border-radius-sm: 0.2em;--bs-border-radius-lg: 0.5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width: 0.25rem;--bs-focus-ring-opacity: 0.25;--bs-focus-ring-color: rgba(39, 128, 227, 0.25);--bs-form-valid-color: #3fb618;--bs-form-valid-border-color: #3fb618;--bs-form-invalid-color: #ff0039;--bs-form-invalid-border-color: #ff0039}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43, 48, 53;--bs-primary-text-emphasis: #7db3ee;--bs-secondary-text-emphasis: #85898c;--bs-success-text-emphasis: #8cd374;--bs-info-text-emphasis: #c298d6;--bs-warning-text-emphasis: #ffac74;--bs-danger-text-emphasis: #ff6688;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #081a2d;--bs-secondary-bg-subtle: #0a0c0d;--bs-success-bg-subtle: #0d2405;--bs-info-bg-subtle: #1f1125;--bs-warning-bg-subtle: #331705;--bs-danger-bg-subtle: #33000b;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #174d88;--bs-secondary-border-subtle: #1f2326;--bs-success-border-subtle: #266d0e;--bs-info-border-subtle: #5c3270;--bs-warning-border-subtle: #99460e;--bs-danger-border-subtle: #990022;--bs-light-border-subtle: #495057;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #7db3ee;--bs-link-hover-color: #97c2f1;--bs-link-color-rgb: 125, 179, 238;--bs-link-hover-color-rgb: 151, 194, 241;--bs-code-color: white;--bs-border-color: #495057;--bs-border-color-translucent: rgba(255, 255, 255, 0.15);--bs-form-valid-color: #8cd374;--bs-form-valid-border-color: #8cd374;--bs-form-invalid-color: #ff6688;--bs-form-invalid-border-color: #ff6688}*,*::before,*::after{box-sizing:border-box}:root{font-size:var(--bs-root-font-size)}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:400;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.325rem + 0.9vw)}@media(min-width: 1200px){h1,.h1{font-size:2rem}}h2,.h2{font-size:calc(1.29rem + 0.48vw)}@media(min-width: 1200px){h2,.h2{font-size:1.65rem}}h3,.h3{font-size:calc(1.27rem + 0.24vw)}@media(min-width: 1200px){h3,.h3{font-size:1.45rem}}h4,.h4{font-size:1.25rem}h5,.h5{font-size:1.1rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{text-decoration:underline dotted;-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;-ms-text-decoration:underline dotted;-o-text-decoration:underline dotted;cursor:help;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem;padding:.625rem 1.25rem;border-left:.25rem solid #e9ecef}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}b,strong{font-weight:bolder}small,.small{font-size:0.875em}mark,.mark{padding:.1875em;background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:0.75em;line-height:0;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}a{color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:0.875em;color:#000;background-color:#f8f9fa;padding:.5rem;border:1px solid var(--bs-border-color, #dee2e6)}pre code{background-color:rgba(0,0,0,0);font-size:inherit;color:inherit;word-break:normal}code{font-size:0.875em;color:var(--bs-code-color);background-color:#f8f9fa;padding:.125rem .25rem;word-wrap:break-word}a>code{color:inherit}kbd{padding:.4rem .4rem;font-size:0.875em;color:#fff;background-color:#343a40}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:rgba(52,58,64,.75);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none !important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + 0.3vw);line-height:inherit}@media(min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media(min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:0.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:0.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:0.875em;color:rgba(52,58,64,.75)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x)*.5);padding-left:calc(var(--bs-gutter-x)*.5);margin-right:auto;margin-left:auto}@media(min-width: 576px){.container-sm,.container{max-width:540px}}@media(min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media(min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media(min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media(min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.grid{display:grid;grid-template-rows:repeat(var(--bs-rows, 1), 1fr);grid-template-columns:repeat(var(--bs-columns, 12), 1fr);gap:var(--bs-gap, 1.5rem)}.grid .g-col-1{grid-column:auto/span 1}.grid .g-col-2{grid-column:auto/span 2}.grid .g-col-3{grid-column:auto/span 3}.grid .g-col-4{grid-column:auto/span 4}.grid .g-col-5{grid-column:auto/span 5}.grid .g-col-6{grid-column:auto/span 6}.grid .g-col-7{grid-column:auto/span 7}.grid .g-col-8{grid-column:auto/span 8}.grid .g-col-9{grid-column:auto/span 9}.grid .g-col-10{grid-column:auto/span 10}.grid .g-col-11{grid-column:auto/span 11}.grid .g-col-12{grid-column:auto/span 12}.grid .g-start-1{grid-column-start:1}.grid .g-start-2{grid-column-start:2}.grid .g-start-3{grid-column-start:3}.grid .g-start-4{grid-column-start:4}.grid .g-start-5{grid-column-start:5}.grid .g-start-6{grid-column-start:6}.grid .g-start-7{grid-column-start:7}.grid .g-start-8{grid-column-start:8}.grid .g-start-9{grid-column-start:9}.grid .g-start-10{grid-column-start:10}.grid .g-start-11{grid-column-start:11}@media(min-width: 576px){.grid .g-col-sm-1{grid-column:auto/span 1}.grid .g-col-sm-2{grid-column:auto/span 2}.grid .g-col-sm-3{grid-column:auto/span 3}.grid .g-col-sm-4{grid-column:auto/span 4}.grid .g-col-sm-5{grid-column:auto/span 5}.grid .g-col-sm-6{grid-column:auto/span 6}.grid .g-col-sm-7{grid-column:auto/span 7}.grid .g-col-sm-8{grid-column:auto/span 8}.grid .g-col-sm-9{grid-column:auto/span 9}.grid .g-col-sm-10{grid-column:auto/span 10}.grid .g-col-sm-11{grid-column:auto/span 11}.grid .g-col-sm-12{grid-column:auto/span 12}.grid .g-start-sm-1{grid-column-start:1}.grid .g-start-sm-2{grid-column-start:2}.grid .g-start-sm-3{grid-column-start:3}.grid .g-start-sm-4{grid-column-start:4}.grid .g-start-sm-5{grid-column-start:5}.grid .g-start-sm-6{grid-column-start:6}.grid .g-start-sm-7{grid-column-start:7}.grid .g-start-sm-8{grid-column-start:8}.grid .g-start-sm-9{grid-column-start:9}.grid .g-start-sm-10{grid-column-start:10}.grid .g-start-sm-11{grid-column-start:11}}@media(min-width: 768px){.grid .g-col-md-1{grid-column:auto/span 1}.grid .g-col-md-2{grid-column:auto/span 2}.grid .g-col-md-3{grid-column:auto/span 3}.grid .g-col-md-4{grid-column:auto/span 4}.grid .g-col-md-5{grid-column:auto/span 5}.grid .g-col-md-6{grid-column:auto/span 6}.grid .g-col-md-7{grid-column:auto/span 7}.grid .g-col-md-8{grid-column:auto/span 8}.grid .g-col-md-9{grid-column:auto/span 9}.grid .g-col-md-10{grid-column:auto/span 10}.grid .g-col-md-11{grid-column:auto/span 11}.grid .g-col-md-12{grid-column:auto/span 12}.grid .g-start-md-1{grid-column-start:1}.grid .g-start-md-2{grid-column-start:2}.grid .g-start-md-3{grid-column-start:3}.grid .g-start-md-4{grid-column-start:4}.grid .g-start-md-5{grid-column-start:5}.grid .g-start-md-6{grid-column-start:6}.grid .g-start-md-7{grid-column-start:7}.grid .g-start-md-8{grid-column-start:8}.grid .g-start-md-9{grid-column-start:9}.grid .g-start-md-10{grid-column-start:10}.grid .g-start-md-11{grid-column-start:11}}@media(min-width: 992px){.grid .g-col-lg-1{grid-column:auto/span 1}.grid .g-col-lg-2{grid-column:auto/span 2}.grid .g-col-lg-3{grid-column:auto/span 3}.grid .g-col-lg-4{grid-column:auto/span 4}.grid .g-col-lg-5{grid-column:auto/span 5}.grid .g-col-lg-6{grid-column:auto/span 6}.grid .g-col-lg-7{grid-column:auto/span 7}.grid .g-col-lg-8{grid-column:auto/span 8}.grid .g-col-lg-9{grid-column:auto/span 9}.grid .g-col-lg-10{grid-column:auto/span 10}.grid .g-col-lg-11{grid-column:auto/span 11}.grid .g-col-lg-12{grid-column:auto/span 12}.grid .g-start-lg-1{grid-column-start:1}.grid .g-start-lg-2{grid-column-start:2}.grid .g-start-lg-3{grid-column-start:3}.grid .g-start-lg-4{grid-column-start:4}.grid .g-start-lg-5{grid-column-start:5}.grid .g-start-lg-6{grid-column-start:6}.grid .g-start-lg-7{grid-column-start:7}.grid .g-start-lg-8{grid-column-start:8}.grid .g-start-lg-9{grid-column-start:9}.grid .g-start-lg-10{grid-column-start:10}.grid .g-start-lg-11{grid-column-start:11}}@media(min-width: 1200px){.grid .g-col-xl-1{grid-column:auto/span 1}.grid .g-col-xl-2{grid-column:auto/span 2}.grid .g-col-xl-3{grid-column:auto/span 3}.grid .g-col-xl-4{grid-column:auto/span 4}.grid .g-col-xl-5{grid-column:auto/span 5}.grid .g-col-xl-6{grid-column:auto/span 6}.grid .g-col-xl-7{grid-column:auto/span 7}.grid .g-col-xl-8{grid-column:auto/span 8}.grid .g-col-xl-9{grid-column:auto/span 9}.grid .g-col-xl-10{grid-column:auto/span 10}.grid .g-col-xl-11{grid-column:auto/span 11}.grid .g-col-xl-12{grid-column:auto/span 12}.grid .g-start-xl-1{grid-column-start:1}.grid .g-start-xl-2{grid-column-start:2}.grid .g-start-xl-3{grid-column-start:3}.grid .g-start-xl-4{grid-column-start:4}.grid .g-start-xl-5{grid-column-start:5}.grid .g-start-xl-6{grid-column-start:6}.grid .g-start-xl-7{grid-column-start:7}.grid .g-start-xl-8{grid-column-start:8}.grid .g-start-xl-9{grid-column-start:9}.grid .g-start-xl-10{grid-column-start:10}.grid .g-start-xl-11{grid-column-start:11}}@media(min-width: 1400px){.grid .g-col-xxl-1{grid-column:auto/span 1}.grid .g-col-xxl-2{grid-column:auto/span 2}.grid .g-col-xxl-3{grid-column:auto/span 3}.grid .g-col-xxl-4{grid-column:auto/span 4}.grid .g-col-xxl-5{grid-column:auto/span 5}.grid .g-col-xxl-6{grid-column:auto/span 6}.grid .g-col-xxl-7{grid-column:auto/span 7}.grid .g-col-xxl-8{grid-column:auto/span 8}.grid .g-col-xxl-9{grid-column:auto/span 9}.grid .g-col-xxl-10{grid-column:auto/span 10}.grid .g-col-xxl-11{grid-column:auto/span 11}.grid .g-col-xxl-12{grid-column:auto/span 12}.grid .g-start-xxl-1{grid-column-start:1}.grid .g-start-xxl-2{grid-column-start:2}.grid .g-start-xxl-3{grid-column-start:3}.grid .g-start-xxl-4{grid-column-start:4}.grid .g-start-xxl-5{grid-column-start:5}.grid .g-start-xxl-6{grid-column-start:6}.grid .g-start-xxl-7{grid-column-start:7}.grid .g-start-xxl-8{grid-column-start:8}.grid .g-start-xxl-9{grid-column-start:9}.grid .g-start-xxl-10{grid-column-start:10}.grid .g-start-xxl-11{grid-column-start:11}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: #343a40;--bs-table-bg: #fff;--bs-table-border-color: #dee2e6;--bs-table-accent-bg: transparent;--bs-table-striped-color: #343a40;--bs-table-striped-bg: rgba(0, 0, 0, 0.05);--bs-table-active-color: #343a40;--bs-table-active-bg: rgba(0, 0, 0, 0.1);--bs-table-hover-color: #343a40;--bs-table-hover-bg: rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(1px*2) solid #b2bac1}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(even){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #d4e6f9;--bs-table-border-color: #bfcfe0;--bs-table-striped-bg: #c9dbed;--bs-table-striped-color: #000;--bs-table-active-bg: #bfcfe0;--bs-table-active-color: #000;--bs-table-hover-bg: #c4d5e6;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #d6d8d9;--bs-table-border-color: #c1c2c3;--bs-table-striped-bg: #cbcdce;--bs-table-striped-color: #000;--bs-table-active-bg: #c1c2c3;--bs-table-active-color: #000;--bs-table-hover-bg: #c6c8c9;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d9f0d1;--bs-table-border-color: #c3d8bc;--bs-table-striped-bg: #cee4c7;--bs-table-striped-color: #000;--bs-table-active-bg: #c3d8bc;--bs-table-active-color: #000;--bs-table-hover-bg: #c9dec1;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #ebddf1;--bs-table-border-color: #d4c7d9;--bs-table-striped-bg: #dfd2e5;--bs-table-striped-color: #000;--bs-table-active-bg: #d4c7d9;--bs-table-active-color: #000;--bs-table-hover-bg: #d9ccdf;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #ffe3d1;--bs-table-border-color: #e6ccbc;--bs-table-striped-bg: #f2d8c7;--bs-table-striped-color: #000;--bs-table-active-bg: #e6ccbc;--bs-table-active-color: #000;--bs-table-hover-bg: #ecd2c1;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #ffccd7;--bs-table-border-color: #e6b8c2;--bs-table-striped-bg: #f2c2cc;--bs-table-striped-color: #000;--bs-table-active-bg: #e6b8c2;--bs-table-active-color: #000;--bs-table-hover-bg: #ecbdc7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f9fa;--bs-table-border-color: #dfe0e1;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #343a40;--bs-table-border-color: #484e53;--bs-table-striped-bg: #3e444a;--bs-table-striped-color: #fff;--bs-table-active-bg: #484e53;--bs-table-active-color: #fff;--bs-table-hover-bg: #43494e;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label,.shiny-input-container .control-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(0.375rem + 1px);padding-bottom:calc(0.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(0.5rem + 1px);padding-bottom:calc(0.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(0.25rem + 1px);padding-bottom:calc(0.25rem + 1px);font-size:0.875rem}.form-text{margin-top:.25rem;font-size:0.875em;color:rgba(52,58,64,.75)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#343a40;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fff;background-clip:padding-box;border:1px solid #dee2e6;border-radius:0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#343a40;background-color:#fff;border-color:#93c0f1;outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:rgba(52,58,64,.75);opacity:1}.form-control:disabled{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-0.375rem -0.75rem;margin-inline-end:.75rem;color:#343a40;background-color:#f8f9fa;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#e9ecef}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#343a40;background-color:rgba(0,0,0,0);border:solid rgba(0,0,0,0);border-width:1px 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2));padding:.25rem .5rem;font-size:0.875rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-0.25rem -0.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2));padding:.5rem 1rem;font-size:1.25rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-0.5rem -1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + 0.75rem + calc(1px * 2))}textarea.form-control-sm{min-height:calc(1.5em + 0.5rem + calc(1px * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(1px * 2))}.form-control-color{width:3rem;height:calc(1.5em + 0.75rem + calc(1px * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0 !important}.form-control-color::-webkit-color-swatch{border:0 !important}.form-control-color.form-control-sm{height:calc(1.5em + 0.5rem + calc(1px * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(1px * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#343a40;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#fff;background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #dee2e6;border-radius:0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#93c0f1;outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:rgba(0,0,0,0);text-shadow:0 0 0 #343a40}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:0.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check,.shiny-input-container .checkbox,.shiny-input-container .radio{display:block;min-height:1.5rem;padding-left:0;margin-bottom:.125rem}.form-check .form-check-input,.form-check .shiny-input-container .checkbox input,.form-check .shiny-input-container .radio input,.shiny-input-container .checkbox .form-check-input,.shiny-input-container .checkbox .shiny-input-container .checkbox input,.shiny-input-container .checkbox .shiny-input-container .radio input,.shiny-input-container .radio .form-check-input,.shiny-input-container .radio .shiny-input-container .checkbox input,.shiny-input-container .radio .shiny-input-container .radio input{float:left;margin-left:0}.form-check-reverse{padding-right:0;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:0;margin-left:0}.form-check-input,.shiny-input-container .checkbox input,.shiny-input-container .checkbox-inline input,.shiny-input-container .radio input,.shiny-input-container .radio-inline input{--bs-form-check-bg: #fff;width:1em;height:1em;margin-top:.25em;vertical-align:top;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid #dee2e6;print-color-adjust:exact}.form-check-input[type=radio],.shiny-input-container .checkbox input[type=radio],.shiny-input-container .checkbox-inline input[type=radio],.shiny-input-container .radio input[type=radio],.shiny-input-container .radio-inline input[type=radio]{border-radius:50%}.form-check-input:active,.shiny-input-container .checkbox input:active,.shiny-input-container .checkbox-inline input:active,.shiny-input-container .radio input:active,.shiny-input-container .radio-inline input:active{filter:brightness(90%)}.form-check-input:focus,.shiny-input-container .checkbox input:focus,.shiny-input-container .checkbox-inline input:focus,.shiny-input-container .radio input:focus,.shiny-input-container .radio-inline input:focus{border-color:#93c0f1;outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.form-check-input:checked,.shiny-input-container .checkbox input:checked,.shiny-input-container .checkbox-inline input:checked,.shiny-input-container .radio input:checked,.shiny-input-container .radio-inline input:checked{background-color:#2780e3;border-color:#2780e3}.form-check-input:checked[type=checkbox],.shiny-input-container .checkbox input:checked[type=checkbox],.shiny-input-container .checkbox-inline input:checked[type=checkbox],.shiny-input-container .radio input:checked[type=checkbox],.shiny-input-container .radio-inline input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio],.shiny-input-container .checkbox input:checked[type=radio],.shiny-input-container .checkbox-inline input:checked[type=radio],.shiny-input-container .radio input:checked[type=radio],.shiny-input-container .radio-inline input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate,.shiny-input-container .checkbox input[type=checkbox]:indeterminate,.shiny-input-container .checkbox-inline input[type=checkbox]:indeterminate,.shiny-input-container .radio input[type=checkbox]:indeterminate,.shiny-input-container .radio-inline input[type=checkbox]:indeterminate{background-color:#2780e3;border-color:#2780e3;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled,.shiny-input-container .checkbox input:disabled,.shiny-input-container .checkbox-inline input:disabled,.shiny-input-container .radio input:disabled,.shiny-input-container .radio-inline input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input[disabled]~span,.form-check-input:disabled~.form-check-label,.form-check-input:disabled~span,.shiny-input-container .checkbox input[disabled]~.form-check-label,.shiny-input-container .checkbox input[disabled]~span,.shiny-input-container .checkbox input:disabled~.form-check-label,.shiny-input-container .checkbox input:disabled~span,.shiny-input-container .checkbox-inline input[disabled]~.form-check-label,.shiny-input-container .checkbox-inline input[disabled]~span,.shiny-input-container .checkbox-inline input:disabled~.form-check-label,.shiny-input-container .checkbox-inline input:disabled~span,.shiny-input-container .radio input[disabled]~.form-check-label,.shiny-input-container .radio input[disabled]~span,.shiny-input-container .radio input:disabled~.form-check-label,.shiny-input-container .radio input:disabled~span,.shiny-input-container .radio-inline input[disabled]~.form-check-label,.shiny-input-container .radio-inline input[disabled]~span,.shiny-input-container .radio-inline input:disabled~.form-check-label,.shiny-input-container .radio-inline input:disabled~span{cursor:default;opacity:.5}.form-check-label,.shiny-input-container .checkbox label,.shiny-input-container .checkbox-inline label,.shiny-input-container .radio label,.shiny-input-container .radio-inline label{cursor:pointer}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;transition:background-position .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2393c0f1'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:rgba(0,0,0,0)}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(39,128,227,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(39,128,227,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-0.25rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#2780e3;border:0;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#bed9f7}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#f8f9fa;border-color:rgba(0,0,0,0)}.form-range::-moz-range-thumb{width:1rem;height:1rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;-o-appearance:none;background-color:#2780e3;border:0;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{transition:none}}.form-range::-moz-range-thumb:active{background-color:#bed9f7}.form-range::-moz-range-track{width:100%;height:.5rem;color:rgba(0,0,0,0);cursor:pointer;background-color:#f8f9fa;border-color:rgba(0,0,0,0)}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:rgba(52,58,64,.75)}.form-range:disabled::-moz-range-thumb{background-color:rgba(52,58,64,.75)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(1px * 2));min-height:calc(3.5rem + calc(1px * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:1px solid rgba(0,0,0,0);transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media(prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:rgba(0,0,0,0)}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-control-plaintext~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:#fff}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb), 0.65);transform:scale(0.85) translateY(-0.5rem) translateX(0.15rem)}.form-floating>.form-control-plaintext~label{border-width:1px 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.form-floating>:disabled~label::after,.form-floating>.form-control:disabled~label::after{background-color:#e9ecef}.input-group{position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:stretch;-webkit-align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#343a40;text-align:center;white-space:nowrap;background-color:#f8f9fa;border:1px solid #dee2e6}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:0.875rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(1px*-1)}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#3fb618}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:#3fb618}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:#3fb618;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%233fb618' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:#3fb618;box-shadow:0 0 0 .25rem rgba(63,182,24,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:#3fb618}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%233fb618' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:#3fb618;box-shadow:0 0 0 .25rem rgba(63,182,24,.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:#3fb618}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:#3fb618}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(63,182,24,.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:#3fb618}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:0.875em;color:#ff0039}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:0.875rem;color:#fff;background-color:#ff0039}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:#ff0039;padding-right:calc(1.5em + 0.75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ff0039'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ff0039' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(0.375em + 0.1875rem) center;background-size:calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:#ff0039;box-shadow:0 0 0 .25rem rgba(255,0,57,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 0.75rem);background-position:top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:#ff0039}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ff0039'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ff0039' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(0.75em + 0.375rem) calc(0.75em + 0.375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:#ff0039;box-shadow:0 0 0 .25rem rgba(255,0,57,.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3rem + calc(1.5em + 0.75rem))}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:#ff0039}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:#ff0039}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(255,0,57,.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:#ff0039}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: 0.75rem;--bs-btn-padding-y: 0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: #343a40;--bs-btn-bg: transparent;--bs-btn-border-width: 1px;--bs-btn-border-color: transparent;--bs-btn-border-radius: 0.25rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity: 0.65;--bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;vertical-align:middle;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-default{--bs-btn-color: #fff;--bs-btn-bg: #343a40;--bs-btn-border-color: #343a40;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #2c3136;--bs-btn-hover-border-color: #2a2e33;--bs-btn-focus-shadow-rgb: 82, 88, 93;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2a2e33;--bs-btn-active-border-color: #272c30;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #343a40;--bs-btn-disabled-border-color: #343a40}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #2780e3;--bs-btn-border-color: #2780e3;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #216dc1;--bs-btn-hover-border-color: #1f66b6;--bs-btn-focus-shadow-rgb: 71, 147, 231;--bs-btn-active-color: #fff;--bs-btn-active-bg: #1f66b6;--bs-btn-active-border-color: #1d60aa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #2780e3;--bs-btn-disabled-border-color: #2780e3}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #343a40;--bs-btn-border-color: #343a40;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #2c3136;--bs-btn-hover-border-color: #2a2e33;--bs-btn-focus-shadow-rgb: 82, 88, 93;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2a2e33;--bs-btn-active-border-color: #272c30;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #343a40;--bs-btn-disabled-border-color: #343a40}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #3fb618;--bs-btn-border-color: #3fb618;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #369b14;--bs-btn-hover-border-color: #329213;--bs-btn-focus-shadow-rgb: 92, 193, 59;--bs-btn-active-color: #fff;--bs-btn-active-bg: #329213;--bs-btn-active-border-color: #2f8912;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #3fb618;--bs-btn-disabled-border-color: #3fb618}.btn-info{--bs-btn-color: #fff;--bs-btn-bg: #9954bb;--bs-btn-border-color: #9954bb;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #82479f;--bs-btn-hover-border-color: #7a4396;--bs-btn-focus-shadow-rgb: 168, 110, 197;--bs-btn-active-color: #fff;--bs-btn-active-bg: #7a4396;--bs-btn-active-border-color: #733f8c;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #9954bb;--bs-btn-disabled-border-color: #9954bb}.btn-warning{--bs-btn-color: #fff;--bs-btn-bg: #ff7518;--bs-btn-border-color: #ff7518;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #d96314;--bs-btn-hover-border-color: #cc5e13;--bs-btn-focus-shadow-rgb: 255, 138, 59;--bs-btn-active-color: #fff;--bs-btn-active-bg: #cc5e13;--bs-btn-active-border-color: #bf5812;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #ff7518;--bs-btn-disabled-border-color: #ff7518}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #ff0039;--bs-btn-border-color: #ff0039;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #d90030;--bs-btn-hover-border-color: #cc002e;--bs-btn-focus-shadow-rgb: 255, 38, 87;--bs-btn-active-color: #fff;--bs-btn-active-bg: #cc002e;--bs-btn-active-border-color: #bf002b;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #ff0039;--bs-btn-disabled-border-color: #ff0039}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d3d4d5;--bs-btn-hover-border-color: #c6c7c8;--bs-btn-focus-shadow-rgb: 211, 212, 213;--bs-btn-active-color: #000;--bs-btn-active-bg: #c6c7c8;--bs-btn-active-border-color: #babbbc;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f9fa;--bs-btn-disabled-border-color: #f8f9fa}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #343a40;--bs-btn-border-color: #343a40;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #52585d;--bs-btn-hover-border-color: #484e53;--bs-btn-focus-shadow-rgb: 82, 88, 93;--bs-btn-active-color: #fff;--bs-btn-active-bg: #5d6166;--bs-btn-active-border-color: #484e53;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #343a40;--bs-btn-disabled-border-color: #343a40}.btn-outline-default{--bs-btn-color: #343a40;--bs-btn-border-color: #343a40;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #343a40;--bs-btn-hover-border-color: #343a40;--bs-btn-focus-shadow-rgb: 52, 58, 64;--bs-btn-active-color: #fff;--bs-btn-active-bg: #343a40;--bs-btn-active-border-color: #343a40;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #343a40;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #343a40;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-primary{--bs-btn-color: #2780e3;--bs-btn-border-color: #2780e3;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #2780e3;--bs-btn-hover-border-color: #2780e3;--bs-btn-focus-shadow-rgb: 39, 128, 227;--bs-btn-active-color: #fff;--bs-btn-active-bg: #2780e3;--bs-btn-active-border-color: #2780e3;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #2780e3;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #2780e3;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #343a40;--bs-btn-border-color: #343a40;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #343a40;--bs-btn-hover-border-color: #343a40;--bs-btn-focus-shadow-rgb: 52, 58, 64;--bs-btn-active-color: #fff;--bs-btn-active-bg: #343a40;--bs-btn-active-border-color: #343a40;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #343a40;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #343a40;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #3fb618;--bs-btn-border-color: #3fb618;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #3fb618;--bs-btn-hover-border-color: #3fb618;--bs-btn-focus-shadow-rgb: 63, 182, 24;--bs-btn-active-color: #fff;--bs-btn-active-bg: #3fb618;--bs-btn-active-border-color: #3fb618;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #3fb618;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #3fb618;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #9954bb;--bs-btn-border-color: #9954bb;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #9954bb;--bs-btn-hover-border-color: #9954bb;--bs-btn-focus-shadow-rgb: 153, 84, 187;--bs-btn-active-color: #fff;--bs-btn-active-bg: #9954bb;--bs-btn-active-border-color: #9954bb;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #9954bb;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #9954bb;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #ff7518;--bs-btn-border-color: #ff7518;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #ff7518;--bs-btn-hover-border-color: #ff7518;--bs-btn-focus-shadow-rgb: 255, 117, 24;--bs-btn-active-color: #fff;--bs-btn-active-bg: #ff7518;--bs-btn-active-border-color: #ff7518;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ff7518;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ff7518;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #ff0039;--bs-btn-border-color: #ff0039;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #ff0039;--bs-btn-hover-border-color: #ff0039;--bs-btn-focus-shadow-rgb: 255, 0, 57;--bs-btn-active-color: #fff;--bs-btn-active-bg: #ff0039;--bs-btn-active-border-color: #ff0039;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #ff0039;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ff0039;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f9fa;--bs-btn-hover-border-color: #f8f9fa;--bs-btn-focus-shadow-rgb: 248, 249, 250;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f9fa;--bs-btn-active-border-color: #f8f9fa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #f8f9fa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f9fa;--bs-btn-bg: transparent;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #343a40;--bs-btn-border-color: #343a40;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #343a40;--bs-btn-hover-border-color: #343a40;--bs-btn-focus-shadow-rgb: 52, 58, 64;--bs-btn-active-color: #fff;--bs-btn-active-bg: #343a40;--bs-btn-active-border-color: #343a40;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #343a40;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #343a40;--bs-btn-bg: transparent;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: #2761e3;--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: #1f4eb6;--bs-btn-hover-border-color: transparent;--bs-btn-active-color: #1f4eb6;--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 71, 121, 231;text-decoration:underline;-webkit-text-decoration:underline;-moz-text-decoration:underline;-ms-text-decoration:underline;-o-text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: 0.5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius: 0.5rem}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: 0.25rem;--bs-btn-padding-x: 0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius: 0.2em}.fade{transition:opacity .15s linear}@media(prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .2s ease}@media(prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media(prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid rgba(0,0,0,0);border-bottom:0;border-left:.3em solid rgba(0,0,0,0)}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: 0.5rem;--bs-dropdown-spacer: 0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color: #343a40;--bs-dropdown-bg: #fff;--bs-dropdown-border-color: rgba(0, 0, 0, 0.175);--bs-dropdown-border-radius: 0.25rem;--bs-dropdown-border-width: 1px;--bs-dropdown-inner-border-radius: calc(0.25rem - 1px);--bs-dropdown-divider-bg: rgba(0, 0, 0, 0.175);--bs-dropdown-divider-margin-y: 0.5rem;--bs-dropdown-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-dropdown-link-color: #343a40;--bs-dropdown-link-hover-color: #343a40;--bs-dropdown-link-hover-bg: #f8f9fa;--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #2780e3;--bs-dropdown-link-disabled-color: rgba(52, 58, 64, 0.5);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: 0.25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: 0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media(min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media(min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid rgba(0,0,0,0);border-bottom:.3em solid;border-left:.3em solid rgba(0,0,0,0)}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:0;border-bottom:.3em solid rgba(0,0,0,0);border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid rgba(0,0,0,0);border-right:.3em solid;border-bottom:.3em solid rgba(0,0,0,0)}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border:0}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:rgba(0,0,0,0)}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:0.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: rgba(0, 0, 0, 0.175);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: rgba(0, 0, 0, 0.175);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #2780e3;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;justify-content:flex-start;-webkit-justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(1px*-1)}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;-webkit-flex-direction:column;align-items:flex-start;-webkit-align-items:flex-start;justify-content:center;-webkit-justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(1px*-1)}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: 0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: #2761e3;--bs-nav-link-hover-color: #1f4eb6;--bs-nav-link-disabled-color: rgba(52, 58, 64, 0.75);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media(prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(39,128,227,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: 1px;--bs-nav-tabs-border-color: #dee2e6;--bs-nav-tabs-border-radius: 0.25rem;--bs-nav-tabs-link-hover-border-color: #e9ecef #e9ecef #dee2e6;--bs-nav-tabs-link-active-color: #000;--bs-nav-tabs-link-active-bg: #fff;--bs-nav-tabs-link-active-border-color: #dee2e6 #dee2e6 #fff;border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1*var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid rgba(0,0,0,0)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1*var(--bs-nav-tabs-border-width))}.nav-pills{--bs-nav-pills-border-radius: 0.25rem;--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #2780e3}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: 0.125rem;--bs-nav-underline-link-active-color: #000;gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid rgba(0,0,0,0)}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;-webkit-flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-basis:0;-webkit-flex-basis:0;flex-grow:1;-webkit-flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: 0.5rem;--bs-navbar-color: #fdfeff;--bs-navbar-hover-color: rgba(253, 253, 255, 0.8);--bs-navbar-disabled-color: rgba(253, 254, 255, 0.75);--bs-navbar-active-color: #fdfdff;--bs-navbar-brand-padding-y: 0.3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: #fdfeff;--bs-navbar-brand-hover-color: #fdfdff;--bs-navbar-nav-link-padding-x: 0.5rem;--bs-navbar-toggler-padding-y: 0.25;--bs-navbar-toggler-padding-x: 0;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fdfeff' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(253, 254, 255, 0);--bs-navbar-toggler-border-radius: 0.25rem;--bs-navbar-toggler-focus-width: 0.25rem;--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;display:-webkit-flex;flex-wrap:inherit;-webkit-flex-wrap:inherit;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: 0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;-webkit-flex-basis:100%;flex-grow:1;-webkit-flex-grow:1;align-items:center;-webkit-align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:rgba(0,0,0,0);border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);transition:var(--bs-navbar-toggler-transition)}@media(prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media(min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}@media(min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;-webkit-flex-wrap:nowrap;justify-content:flex-start;-webkit-justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row;-webkit-flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex !important;display:-webkit-flex !important;flex-basis:auto;-webkit-flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;-webkit-flex-grow:1;width:auto !important;height:auto !important;visibility:visible !important;background-color:rgba(0,0,0,0) !important;border:0 !important;transform:none !important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: #fdfeff;--bs-navbar-hover-color: rgba(253, 253, 255, 0.8);--bs-navbar-disabled-color: rgba(253, 254, 255, 0.75);--bs-navbar-active-color: #fdfdff;--bs-navbar-brand-color: #fdfeff;--bs-navbar-brand-hover-color: #fdfdff;--bs-navbar-toggler-border-color: rgba(253, 254, 255, 0);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fdfeff' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23fdfeff' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: 0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: 1px;--bs-card-border-color: rgba(0, 0, 0, 0.175);--bs-card-border-radius: 0.25rem;--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(0.25rem - 1px);--bs-card-cap-padding-y: 0.5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(52, 58, 64, 0.25);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: #fff;--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: 0.75rem;position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0}.card>.list-group:last-child{border-bottom-width:0}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-0.5*var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header-tabs{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-bottom:calc(-1*var(--bs-card-cap-padding-y));margin-left:calc(-0.5*var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-0.5*var(--bs-card-cap-padding-x));margin-left:calc(-0.5*var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media(min-width: 576px){.card-group{display:flex;display:-webkit-flex;flex-flow:row wrap;-webkit-flex-flow:row wrap}.card-group>.card{flex:1 0 0%;-webkit-flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}}.accordion{--bs-accordion-color: #343a40;--bs-accordion-bg: #fff;--bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;--bs-accordion-border-color: #dee2e6;--bs-accordion-border-width: 1px;--bs-accordion-border-radius: 0.25rem;--bs-accordion-inner-border-radius: calc(0.25rem - 1px);--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: #343a40;--bs-accordion-btn-bg: #fff;--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23343a40'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%2310335b'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color: #93c0f1;--bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(39, 128, 227, 0.25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: #10335b;--bs-accordion-active-bg: #d4e6f9}.accordion-button{position:relative;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media(prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1*var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;-webkit-flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media(prefers-reduced-motion: reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:not(:first-of-type){border-top:0}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%237db3ee'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%237db3ee'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: rgba(52, 58, 64, 0.75);--bs-breadcrumb-item-padding-x: 0.5rem;--bs-breadcrumb-item-active-color: rgba(52, 58, 64, 0.75);display:flex;display:-webkit-flex;flex-wrap:wrap;-webkit-flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, ">") /* rtl: var(--bs-breadcrumb-divider, ">") */}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: 0.75rem;--bs-pagination-padding-y: 0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color: #2761e3;--bs-pagination-bg: #fff;--bs-pagination-border-width: 1px;--bs-pagination-border-color: #dee2e6;--bs-pagination-border-radius: 0.25rem;--bs-pagination-hover-color: #1f4eb6;--bs-pagination-hover-bg: #f8f9fa;--bs-pagination-hover-border-color: #dee2e6;--bs-pagination-focus-color: #1f4eb6;--bs-pagination-focus-bg: #e9ecef;--bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(39, 128, 227, 0.25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #2780e3;--bs-pagination-active-border-color: #2780e3;--bs-pagination-disabled-color: rgba(52, 58, 64, 0.75);--bs-pagination-disabled-bg: #e9ecef;--bs-pagination-disabled-border-color: #dee2e6;display:flex;display:-webkit-flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(1px*-1)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: 0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius: 0.5rem}.pagination-sm{--bs-pagination-padding-x: 0.5rem;--bs-pagination-padding-y: 0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius: 0.2em}.badge{--bs-badge-padding-x: 0.65em;--bs-badge-padding-y: 0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: 0.25rem;display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: 0 solid var(--bs-alert-border-color);--bs-alert-border-radius: 0.25rem;--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-default{--bs-alert-color: var(--bs-default-text-emphasis);--bs-alert-bg: var(--bs-default-bg-subtle);--bs-alert-border-color: var(--bs-default-border-subtle);--bs-alert-link-color: var(--bs-default-text-emphasis)}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:.5rem}}.progress,.progress-stacked{--bs-progress-height: 0.5rem;--bs-progress-font-size:0.75rem;--bs-progress-bg: #e9ecef;--bs-progress-border-radius: 0.25rem;--bs-progress-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #2780e3;--bs-progress-bar-transition: width 0.6s ease;display:flex;display:-webkit-flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg)}.progress-bar{display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;justify-content:center;-webkit-justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media(prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media(prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: #343a40;--bs-list-group-bg: #fff;--bs-list-group-border-color: #dee2e6;--bs-list-group-border-width: 1px;--bs-list-group-border-radius: 0.25rem;--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: 0.5rem;--bs-list-group-action-color: rgba(52, 58, 64, 0.75);--bs-list-group-action-hover-color: #000;--bs-list-group-action-hover-bg: #f8f9fa;--bs-list-group-action-active-color: #343a40;--bs-list-group-action-active-bg: #e9ecef;--bs-list-group-disabled-color: rgba(52, 58, 64, 0.75);--bs-list-group-disabled-bg: #fff;--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #2780e3;--bs-list-group-active-border-color: #2780e3;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;padding-left:0;margin-bottom:0}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:hover,.list-group-item-action:focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;-webkit-text-decoration:none;-moz-text-decoration:none;-ms-text-decoration:none;-o-text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1*var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media(min-width: 576px){.list-group-horizontal-sm{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 768px){.list-group-horizontal-md{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 992px){.list-group-horizontal-lg{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1200px){.list-group-horizontal-xl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media(min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row;-webkit-flex-direction:row}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1*var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-default{--bs-list-group-color: var(--bs-default-text-emphasis);--bs-list-group-bg: var(--bs-default-bg-subtle);--bs-list-group-border-color: var(--bs-default-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-default-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-default-border-subtle);--bs-list-group-active-color: var(--bs-default-bg-subtle);--bs-list-group-active-bg: var(--bs-default-text-emphasis);--bs-list-group-active-border-color: var(--bs-default-text-emphasis)}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity: 0.5;--bs-btn-close-hover-opacity: 0.75;--bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(39, 128, 227, 0.25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: 0.25;--bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:rgba(0,0,0,0) var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: 0.75rem;--bs-toast-padding-y: 0.5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg: rgba(255, 255, 255, 0.85);--bs-toast-border-width: 1px;--bs-toast-border-color: rgba(0, 0, 0, 0.175);--bs-toast-border-radius: 0.25rem;--bs-toast-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-toast-header-color: rgba(52, 58, 64, 0.75);--bs-toast-header-bg: rgba(255, 255, 255, 0.85);--bs-toast-header-border-color: rgba(0, 0, 0, 0.175);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:max-content;width:-webkit-max-content;width:-moz-max-content;width:-ms-max-content;width:-o-max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color)}.toast-header .btn-close{margin-right:calc(-0.5*var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: 0.5rem;--bs-modal-color: ;--bs-modal-bg: #fff;--bs-modal-border-color: rgba(0, 0, 0, 0.175);--bs-modal-border-width: 1px;--bs-modal-border-radius: 0.5rem;--bs-modal-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-modal-inner-border-radius: calc(0.5rem - 1px);--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: #dee2e6;--bs-modal-header-border-width: 1px;--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: 0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: #dee2e6;--bs-modal-footer-border-width: 1px;position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0, -50px)}@media(prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin)*2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;min-height:calc(100% - var(--bs-modal-margin)*2)}.modal-content{position:relative;display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: 0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y)*.5) calc(var(--bs-modal-header-padding-x)*.5);margin:calc(-0.5*var(--bs-modal-header-padding-y)) calc(-0.5*var(--bs-modal-header-padding-x)) calc(-0.5*var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;-webkit-flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;display:-webkit-flex;flex-shrink:0;-webkit-flex-shrink:0;flex-wrap:wrap;-webkit-flex-wrap:wrap;align-items:center;-webkit-align-items:center;justify-content:flex-end;-webkit-justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap)*.5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap)*.5)}@media(min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media(min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media(min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0}.modal-fullscreen .modal-body{overflow-y:auto}@media(max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media(max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media(max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media(max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media(max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: 0.5rem;--bs-tooltip-padding-y: 0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color: #fff;--bs-tooltip-bg: #000;--bs-tooltip-border-radius: 0.25rem;--bs-tooltip-opacity: 0.9;--bs-tooltip-arrow-width: 0.8rem;--bs-tooltip-arrow-height: 0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width)*.5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1*var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1*var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow::before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width)*.5) 0 calc(var(--bs-tooltip-arrow-width)*.5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size:0.875rem;--bs-popover-bg: #fff;--bs-popover-border-width: 1px;--bs-popover-border-color: rgba(0, 0, 0, 0.175);--bs-popover-border-radius: 0.5rem;--bs-popover-inner-border-radius: calc(0.5rem - 1px);--bs-popover-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: 0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: #e9ecef;--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: #343a40;--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: 0.5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::before,.popover .popover-arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-top>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width)*.5) 0}.bs-popover-end>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{border-width:0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header::before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-0.5*var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1*(var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{border-width:calc(var(--bs-popover-arrow-width)*.5) 0 calc(var(--bs-popover-arrow-width)*.5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow::before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y;-webkit-touch-action:pan-y;-moz-touch-action:pan-y;-ms-touch-action:pan-y;-o-touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:transform .6s ease-in-out}@media(prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translateX(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media(prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:center;-webkit-justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media(prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;display:-webkit-flex;justify-content:center;-webkit-justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;-webkit-flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid rgba(0,0,0,0);border-bottom:10px solid rgba(0,0,0,0);opacity:.5;transition:opacity .6s ease}@media(prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-prev-icon,.carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-grow,.spinner-border{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-border-width: 0.25em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:rgba(0,0,0,0)}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: 0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -0.125em;--bs-spinner-animation-speed: 0.75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media(prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: #343a40;--bs-offcanvas-bg: #fff;--bs-offcanvas-border-width: 1px;--bs-offcanvas-border-color: rgba(0, 0, 0, 0.175);--bs-offcanvas-box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-offcanvas-transition: transform 0.3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media(max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 575.98px)and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media(max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media(min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 767.98px)and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media(max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media(min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 991.98px)and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media(max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media(min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 1199.98px)and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media(max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media(min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}@media(max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media(max-width: 1399.98px)and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media(max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media(min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:rgba(0,0,0,0) !important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;display:-webkit-flex;flex-grow:0;-webkit-flex-grow:0;padding:0;overflow-y:visible;background-color:rgba(0,0,0,0) !important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;display:-webkit-flex;flex-direction:column;-webkit-flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media(prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;display:-webkit-flex;align-items:center;-webkit-align-items:center;justify-content:space-between;-webkit-justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y)*.5) calc(var(--bs-offcanvas-padding-x)*.5);margin-top:calc(-0.5*var(--bs-offcanvas-padding-y));margin-right:calc(-0.5*var(--bs-offcanvas-padding-x));margin-bottom:calc(-0.5*var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;-webkit-flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);-webkit-mask-image:linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);mask-size:200% 100%;-webkit-mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{mask-position:-200% 0%;-webkit-mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-default{color:#fff !important;background-color:RGBA(var(--bs-default-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-primary{color:#fff !important;background-color:RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-secondary{color:#fff !important;background-color:RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-success{color:#fff !important;background-color:RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-info{color:#fff !important;background-color:RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-warning{color:#fff !important;background-color:RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-danger{color:#fff !important;background-color:RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-light{color:#000 !important;background-color:RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important}.text-bg-dark{color:#fff !important;background-color:RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important}.link-default{color:RGBA(var(--bs-default-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-default-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-default:hover,.link-default:focus{color:RGBA(42, 46, 51, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(42, 46, 51, var(--bs-link-underline-opacity, 1)) !important}.link-primary{color:RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-primary:hover,.link-primary:focus{color:RGBA(31, 102, 182, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(31, 102, 182, var(--bs-link-underline-opacity, 1)) !important}.link-secondary{color:RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-secondary:hover,.link-secondary:focus{color:RGBA(42, 46, 51, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(42, 46, 51, var(--bs-link-underline-opacity, 1)) !important}.link-success{color:RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-success:hover,.link-success:focus{color:RGBA(50, 146, 19, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(50, 146, 19, var(--bs-link-underline-opacity, 1)) !important}.link-info{color:RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-info:hover,.link-info:focus{color:RGBA(122, 67, 150, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(122, 67, 150, var(--bs-link-underline-opacity, 1)) !important}.link-warning{color:RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-warning:hover,.link-warning:focus{color:RGBA(204, 94, 19, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(204, 94, 19, var(--bs-link-underline-opacity, 1)) !important}.link-danger{color:RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-danger:hover,.link-danger:focus{color:RGBA(204, 0, 46, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(204, 0, 46, var(--bs-link-underline-opacity, 1)) !important}.link-light{color:RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-light:hover,.link-light:focus{color:RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important}.link-dark{color:RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-dark:hover,.link-dark:focus{color:RGBA(42, 46, 51, var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(42, 46, 51, var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-align-items:center;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));text-underline-offset:.25em;backface-visibility:hidden;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;-webkit-flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media(prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(0.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:sticky;top:0;z-index:1020}.sticky-bottom{position:sticky;bottom:0;z-index:1020}@media(min-width: 576px){.sticky-sm-top{position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 768px){.sticky-md-top{position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 992px){.sticky-lg-top{position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1200px){.sticky-xl-top{position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:sticky;bottom:0;z-index:1020}}@media(min-width: 1400px){.sticky-xxl-top{position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;display:-webkit-flex;flex-direction:row;-webkit-flex-direction:row;align-items:center;-webkit-align-items:center;align-self:stretch;-webkit-align-self:stretch}.vstack{display:flex;display:-webkit-flex;flex:1 1 auto;-webkit-flex:1 1 auto;flex-direction:column;-webkit-flex-direction:column;align-self:stretch;-webkit-align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;-webkit-align-self:stretch;width:1px;min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline !important}.align-top{vertical-align:top !important}.align-middle{vertical-align:middle !important}.align-bottom{vertical-align:bottom !important}.align-text-bottom{vertical-align:text-bottom !important}.align-text-top{vertical-align:text-top !important}.float-start{float:left !important}.float-end{float:right !important}.float-none{float:none !important}.object-fit-contain{object-fit:contain !important}.object-fit-cover{object-fit:cover !important}.object-fit-fill{object-fit:fill !important}.object-fit-scale{object-fit:scale-down !important}.object-fit-none{object-fit:none !important}.opacity-0{opacity:0 !important}.opacity-25{opacity:.25 !important}.opacity-50{opacity:.5 !important}.opacity-75{opacity:.75 !important}.opacity-100{opacity:1 !important}.overflow-auto{overflow:auto !important}.overflow-hidden{overflow:hidden !important}.overflow-visible{overflow:visible !important}.overflow-scroll{overflow:scroll !important}.overflow-x-auto{overflow-x:auto !important}.overflow-x-hidden{overflow-x:hidden !important}.overflow-x-visible{overflow-x:visible !important}.overflow-x-scroll{overflow-x:scroll !important}.overflow-y-auto{overflow-y:auto !important}.overflow-y-hidden{overflow-y:hidden !important}.overflow-y-visible{overflow-y:visible !important}.overflow-y-scroll{overflow-y:scroll !important}.d-inline{display:inline !important}.d-inline-block{display:inline-block !important}.d-block{display:block !important}.d-grid{display:grid !important}.d-inline-grid{display:inline-grid !important}.d-table{display:table !important}.d-table-row{display:table-row !important}.d-table-cell{display:table-cell !important}.d-flex{display:flex !important}.d-inline-flex{display:inline-flex !important}.d-none{display:none !important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075) !important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175) !important}.shadow-none{box-shadow:none !important}.focus-ring-default{--bs-focus-ring-color: rgba(var(--bs-default-rgb), var(--bs-focus-ring-opacity))}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static !important}.position-relative{position:relative !important}.position-absolute{position:absolute !important}.position-fixed{position:fixed !important}.position-sticky{position:sticky !important}.top-0{top:0 !important}.top-50{top:50% !important}.top-100{top:100% !important}.bottom-0{bottom:0 !important}.bottom-50{bottom:50% !important}.bottom-100{bottom:100% !important}.start-0{left:0 !important}.start-50{left:50% !important}.start-100{left:100% !important}.end-0{right:0 !important}.end-50{right:50% !important}.end-100{right:100% !important}.translate-middle{transform:translate(-50%, -50%) !important}.translate-middle-x{transform:translateX(-50%) !important}.translate-middle-y{transform:translateY(-50%) !important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-0{border:0 !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-top-0{border-top:0 !important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-end-0{border-right:0 !important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-bottom-0{border-bottom:0 !important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.border-start-0{border-left:0 !important}.border-default{--bs-border-opacity: 1;border-color:rgba(var(--bs-default-rgb), var(--bs-border-opacity)) !important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle) !important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle) !important}.border-success-subtle{border-color:var(--bs-success-border-subtle) !important}.border-info-subtle{border-color:var(--bs-info-border-subtle) !important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle) !important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle) !important}.border-light-subtle{border-color:var(--bs-light-border-subtle) !important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle) !important}.border-1{border-width:1px !important}.border-2{border-width:2px !important}.border-3{border-width:3px !important}.border-4{border-width:4px !important}.border-5{border-width:5px !important}.border-opacity-10{--bs-border-opacity: 0.1}.border-opacity-25{--bs-border-opacity: 0.25}.border-opacity-50{--bs-border-opacity: 0.5}.border-opacity-75{--bs-border-opacity: 0.75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25% !important}.w-50{width:50% !important}.w-75{width:75% !important}.w-100{width:100% !important}.w-auto{width:auto !important}.mw-100{max-width:100% !important}.vw-100{width:100vw !important}.min-vw-100{min-width:100vw !important}.h-25{height:25% !important}.h-50{height:50% !important}.h-75{height:75% !important}.h-100{height:100% !important}.h-auto{height:auto !important}.mh-100{max-height:100% !important}.vh-100{height:100vh !important}.min-vh-100{min-height:100vh !important}.flex-fill{flex:1 1 auto !important}.flex-row{flex-direction:row !important}.flex-column{flex-direction:column !important}.flex-row-reverse{flex-direction:row-reverse !important}.flex-column-reverse{flex-direction:column-reverse !important}.flex-grow-0{flex-grow:0 !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-0{flex-shrink:0 !important}.flex-shrink-1{flex-shrink:1 !important}.flex-wrap{flex-wrap:wrap !important}.flex-nowrap{flex-wrap:nowrap !important}.flex-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-start{justify-content:flex-start !important}.justify-content-end{justify-content:flex-end !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.justify-content-around{justify-content:space-around !important}.justify-content-evenly{justify-content:space-evenly !important}.align-items-start{align-items:flex-start !important}.align-items-end{align-items:flex-end !important}.align-items-center{align-items:center !important}.align-items-baseline{align-items:baseline !important}.align-items-stretch{align-items:stretch !important}.align-content-start{align-content:flex-start !important}.align-content-end{align-content:flex-end !important}.align-content-center{align-content:center !important}.align-content-between{align-content:space-between !important}.align-content-around{align-content:space-around !important}.align-content-stretch{align-content:stretch !important}.align-self-auto{align-self:auto !important}.align-self-start{align-self:flex-start !important}.align-self-end{align-self:flex-end !important}.align-self-center{align-self:center !important}.align-self-baseline{align-self:baseline !important}.align-self-stretch{align-self:stretch !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.m-0{margin:0 !important}.m-1{margin:.25rem !important}.m-2{margin:.5rem !important}.m-3{margin:1rem !important}.m-4{margin:1.5rem !important}.m-5{margin:3rem !important}.m-auto{margin:auto !important}.mx-0{margin-right:0 !important;margin-left:0 !important}.mx-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-3{margin-right:1rem !important;margin-left:1rem !important}.mx-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-5{margin-right:3rem !important;margin-left:3rem !important}.mx-auto{margin-right:auto !important;margin-left:auto !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-0{margin-top:0 !important}.mt-1{margin-top:.25rem !important}.mt-2{margin-top:.5rem !important}.mt-3{margin-top:1rem !important}.mt-4{margin-top:1.5rem !important}.mt-5{margin-top:3rem !important}.mt-auto{margin-top:auto !important}.me-0{margin-right:0 !important}.me-1{margin-right:.25rem !important}.me-2{margin-right:.5rem !important}.me-3{margin-right:1rem !important}.me-4{margin-right:1.5rem !important}.me-5{margin-right:3rem !important}.me-auto{margin-right:auto !important}.mb-0{margin-bottom:0 !important}.mb-1{margin-bottom:.25rem !important}.mb-2{margin-bottom:.5rem !important}.mb-3{margin-bottom:1rem !important}.mb-4{margin-bottom:1.5rem !important}.mb-5{margin-bottom:3rem !important}.mb-auto{margin-bottom:auto !important}.ms-0{margin-left:0 !important}.ms-1{margin-left:.25rem !important}.ms-2{margin-left:.5rem !important}.ms-3{margin-left:1rem !important}.ms-4{margin-left:1.5rem !important}.ms-5{margin-left:3rem !important}.ms-auto{margin-left:auto !important}.p-0{padding:0 !important}.p-1{padding:.25rem !important}.p-2{padding:.5rem !important}.p-3{padding:1rem !important}.p-4{padding:1.5rem !important}.p-5{padding:3rem !important}.px-0{padding-right:0 !important;padding-left:0 !important}.px-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-3{padding-right:1rem !important;padding-left:1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-5{padding-right:3rem !important;padding-left:3rem !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-0{padding-top:0 !important}.pt-1{padding-top:.25rem !important}.pt-2{padding-top:.5rem !important}.pt-3{padding-top:1rem !important}.pt-4{padding-top:1.5rem !important}.pt-5{padding-top:3rem !important}.pe-0{padding-right:0 !important}.pe-1{padding-right:.25rem !important}.pe-2{padding-right:.5rem !important}.pe-3{padding-right:1rem !important}.pe-4{padding-right:1.5rem !important}.pe-5{padding-right:3rem !important}.pb-0{padding-bottom:0 !important}.pb-1{padding-bottom:.25rem !important}.pb-2{padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.pb-4{padding-bottom:1.5rem !important}.pb-5{padding-bottom:3rem !important}.ps-0{padding-left:0 !important}.ps-1{padding-left:.25rem !important}.ps-2{padding-left:.5rem !important}.ps-3{padding-left:1rem !important}.ps-4{padding-left:1.5rem !important}.ps-5{padding-left:3rem !important}.gap-0{gap:0 !important}.gap-1{gap:.25rem !important}.gap-2{gap:.5rem !important}.gap-3{gap:1rem !important}.gap-4{gap:1.5rem !important}.gap-5{gap:3rem !important}.row-gap-0{row-gap:0 !important}.row-gap-1{row-gap:.25rem !important}.row-gap-2{row-gap:.5rem !important}.row-gap-3{row-gap:1rem !important}.row-gap-4{row-gap:1.5rem !important}.row-gap-5{row-gap:3rem !important}.column-gap-0{column-gap:0 !important}.column-gap-1{column-gap:.25rem !important}.column-gap-2{column-gap:.5rem !important}.column-gap-3{column-gap:1rem !important}.column-gap-4{column-gap:1.5rem !important}.column-gap-5{column-gap:3rem !important}.font-monospace{font-family:var(--bs-font-monospace) !important}.fs-1{font-size:calc(1.325rem + 0.9vw) !important}.fs-2{font-size:calc(1.29rem + 0.48vw) !important}.fs-3{font-size:calc(1.27rem + 0.24vw) !important}.fs-4{font-size:1.25rem !important}.fs-5{font-size:1.1rem !important}.fs-6{font-size:1rem !important}.fst-italic{font-style:italic !important}.fst-normal{font-style:normal !important}.fw-lighter{font-weight:lighter !important}.fw-light{font-weight:300 !important}.fw-normal{font-weight:400 !important}.fw-medium{font-weight:500 !important}.fw-semibold{font-weight:600 !important}.fw-bold{font-weight:700 !important}.fw-bolder{font-weight:bolder !important}.lh-1{line-height:1 !important}.lh-sm{line-height:1.25 !important}.lh-base{line-height:1.5 !important}.lh-lg{line-height:2 !important}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.text-decoration-none{text-decoration:none !important}.text-decoration-underline{text-decoration:underline !important}.text-decoration-line-through{text-decoration:line-through !important}.text-lowercase{text-transform:lowercase !important}.text-uppercase{text-transform:uppercase !important}.text-capitalize{text-transform:capitalize !important}.text-wrap{white-space:normal !important}.text-nowrap{white-space:nowrap !important}.text-break{word-wrap:break-word !important;word-break:break-word !important}.text-default{--bs-text-opacity: 1;color:rgba(var(--bs-default-rgb), var(--bs-text-opacity)) !important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-black-50{--bs-text-opacity: 1;color:rgba(0,0,0,.5) !important}.text-white-50{--bs-text-opacity: 1;color:rgba(255,255,255,.5) !important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color) !important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color) !important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color) !important}.text-reset{--bs-text-opacity: 1;color:inherit !important}.text-opacity-25{--bs-text-opacity: 0.25}.text-opacity-50{--bs-text-opacity: 0.5}.text-opacity-75{--bs-text-opacity: 0.75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis) !important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis) !important}.text-success-emphasis{color:var(--bs-success-text-emphasis) !important}.text-info-emphasis{color:var(--bs-info-text-emphasis) !important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis) !important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis) !important}.text-light-emphasis{color:var(--bs-light-text-emphasis) !important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis) !important}.link-opacity-10{--bs-link-opacity: 0.1}.link-opacity-10-hover:hover{--bs-link-opacity: 0.1}.link-opacity-25{--bs-link-opacity: 0.25}.link-opacity-25-hover:hover{--bs-link-opacity: 0.25}.link-opacity-50{--bs-link-opacity: 0.5}.link-opacity-50-hover:hover{--bs-link-opacity: 0.5}.link-opacity-75{--bs-link-opacity: 0.75}.link-opacity-75-hover:hover{--bs-link-opacity: 0.75}.link-opacity-100{--bs-link-opacity: 1}.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1{text-underline-offset:.125em !important}.link-offset-1-hover:hover{text-underline-offset:.125em !important}.link-offset-2{text-underline-offset:.25em !important}.link-offset-2-hover:hover{text-underline-offset:.25em !important}.link-offset-3{text-underline-offset:.375em !important}.link-offset-3-hover:hover{text-underline-offset:.375em !important}.link-underline-default{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-default-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-primary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-secondary{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-success{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-info{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-warning{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-danger{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-light{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important}.link-underline-dark{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important}.link-underline{--bs-link-underline-opacity: 1;text-decoration-color:rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important}.link-underline-opacity-0{--bs-link-underline-opacity: 0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10{--bs-link-underline-opacity: 0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: 0.1}.link-underline-opacity-25{--bs-link-underline-opacity: 0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: 0.25}.link-underline-opacity-50{--bs-link-underline-opacity: 0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: 0.5}.link-underline-opacity-75{--bs-link-underline-opacity: 0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: 0.75}.link-underline-opacity-100{--bs-link-underline-opacity: 1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-default{--bs-bg-opacity: 1;background-color:rgba(var(--bs-default-rgb), var(--bs-bg-opacity)) !important}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important}.bg-transparent{--bs-bg-opacity: 1;background-color:rgba(0,0,0,0) !important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important}.bg-opacity-10{--bs-bg-opacity: 0.1}.bg-opacity-25{--bs-bg-opacity: 0.25}.bg-opacity-50{--bs-bg-opacity: 0.5}.bg-opacity-75{--bs-bg-opacity: 0.75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle) !important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle) !important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle) !important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle) !important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle) !important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle) !important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle) !important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle) !important}.bg-gradient{background-image:var(--bs-gradient) !important}.user-select-all{user-select:all !important}.user-select-auto{user-select:auto !important}.user-select-none{user-select:none !important}.pe-none{pointer-events:none !important}.pe-auto{pointer-events:auto !important}.rounded{border-radius:var(--bs-border-radius) !important}.rounded-0{border-radius:0 !important}.rounded-1{border-radius:var(--bs-border-radius-sm) !important}.rounded-2{border-radius:var(--bs-border-radius) !important}.rounded-3{border-radius:var(--bs-border-radius-lg) !important}.rounded-4{border-radius:var(--bs-border-radius-xl) !important}.rounded-5{border-radius:var(--bs-border-radius-xxl) !important}.rounded-circle{border-radius:50% !important}.rounded-pill{border-radius:var(--bs-border-radius-pill) !important}.rounded-top{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-0{border-top-left-radius:0 !important;border-top-right-radius:0 !important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm) !important;border-top-right-radius:var(--bs-border-radius-sm) !important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius) !important;border-top-right-radius:var(--bs-border-radius) !important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg) !important;border-top-right-radius:var(--bs-border-radius-lg) !important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl) !important;border-top-right-radius:var(--bs-border-radius-xl) !important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl) !important;border-top-right-radius:var(--bs-border-radius-xxl) !important}.rounded-top-circle{border-top-left-radius:50% !important;border-top-right-radius:50% !important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill) !important;border-top-right-radius:var(--bs-border-radius-pill) !important}.rounded-end{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-0{border-top-right-radius:0 !important;border-bottom-right-radius:0 !important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm) !important;border-bottom-right-radius:var(--bs-border-radius-sm) !important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius) !important;border-bottom-right-radius:var(--bs-border-radius) !important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg) !important;border-bottom-right-radius:var(--bs-border-radius-lg) !important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl) !important;border-bottom-right-radius:var(--bs-border-radius-xl) !important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-right-radius:var(--bs-border-radius-xxl) !important}.rounded-end-circle{border-top-right-radius:50% !important;border-bottom-right-radius:50% !important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill) !important;border-bottom-right-radius:var(--bs-border-radius-pill) !important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-0{border-bottom-right-radius:0 !important;border-bottom-left-radius:0 !important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm) !important;border-bottom-left-radius:var(--bs-border-radius-sm) !important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius) !important;border-bottom-left-radius:var(--bs-border-radius) !important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg) !important;border-bottom-left-radius:var(--bs-border-radius-lg) !important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl) !important;border-bottom-left-radius:var(--bs-border-radius-xl) !important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl) !important;border-bottom-left-radius:var(--bs-border-radius-xxl) !important}.rounded-bottom-circle{border-bottom-right-radius:50% !important;border-bottom-left-radius:50% !important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill) !important;border-bottom-left-radius:var(--bs-border-radius-pill) !important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-0{border-bottom-left-radius:0 !important;border-top-left-radius:0 !important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm) !important;border-top-left-radius:var(--bs-border-radius-sm) !important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius) !important;border-top-left-radius:var(--bs-border-radius) !important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg) !important;border-top-left-radius:var(--bs-border-radius-lg) !important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl) !important;border-top-left-radius:var(--bs-border-radius-xl) !important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl) !important;border-top-left-radius:var(--bs-border-radius-xxl) !important}.rounded-start-circle{border-bottom-left-radius:50% !important;border-top-left-radius:50% !important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill) !important;border-top-left-radius:var(--bs-border-radius-pill) !important}.visible{visibility:visible !important}.invisible{visibility:hidden !important}.z-n1{z-index:-1 !important}.z-0{z-index:0 !important}.z-1{z-index:1 !important}.z-2{z-index:2 !important}.z-3{z-index:3 !important}@media(min-width: 576px){.float-sm-start{float:left !important}.float-sm-end{float:right !important}.float-sm-none{float:none !important}.object-fit-sm-contain{object-fit:contain !important}.object-fit-sm-cover{object-fit:cover !important}.object-fit-sm-fill{object-fit:fill !important}.object-fit-sm-scale{object-fit:scale-down !important}.object-fit-sm-none{object-fit:none !important}.d-sm-inline{display:inline !important}.d-sm-inline-block{display:inline-block !important}.d-sm-block{display:block !important}.d-sm-grid{display:grid !important}.d-sm-inline-grid{display:inline-grid !important}.d-sm-table{display:table !important}.d-sm-table-row{display:table-row !important}.d-sm-table-cell{display:table-cell !important}.d-sm-flex{display:flex !important}.d-sm-inline-flex{display:inline-flex !important}.d-sm-none{display:none !important}.flex-sm-fill{flex:1 1 auto !important}.flex-sm-row{flex-direction:row !important}.flex-sm-column{flex-direction:column !important}.flex-sm-row-reverse{flex-direction:row-reverse !important}.flex-sm-column-reverse{flex-direction:column-reverse !important}.flex-sm-grow-0{flex-grow:0 !important}.flex-sm-grow-1{flex-grow:1 !important}.flex-sm-shrink-0{flex-shrink:0 !important}.flex-sm-shrink-1{flex-shrink:1 !important}.flex-sm-wrap{flex-wrap:wrap !important}.flex-sm-nowrap{flex-wrap:nowrap !important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-sm-start{justify-content:flex-start !important}.justify-content-sm-end{justify-content:flex-end !important}.justify-content-sm-center{justify-content:center !important}.justify-content-sm-between{justify-content:space-between !important}.justify-content-sm-around{justify-content:space-around !important}.justify-content-sm-evenly{justify-content:space-evenly !important}.align-items-sm-start{align-items:flex-start !important}.align-items-sm-end{align-items:flex-end !important}.align-items-sm-center{align-items:center !important}.align-items-sm-baseline{align-items:baseline !important}.align-items-sm-stretch{align-items:stretch !important}.align-content-sm-start{align-content:flex-start !important}.align-content-sm-end{align-content:flex-end !important}.align-content-sm-center{align-content:center !important}.align-content-sm-between{align-content:space-between !important}.align-content-sm-around{align-content:space-around !important}.align-content-sm-stretch{align-content:stretch !important}.align-self-sm-auto{align-self:auto !important}.align-self-sm-start{align-self:flex-start !important}.align-self-sm-end{align-self:flex-end !important}.align-self-sm-center{align-self:center !important}.align-self-sm-baseline{align-self:baseline !important}.align-self-sm-stretch{align-self:stretch !important}.order-sm-first{order:-1 !important}.order-sm-0{order:0 !important}.order-sm-1{order:1 !important}.order-sm-2{order:2 !important}.order-sm-3{order:3 !important}.order-sm-4{order:4 !important}.order-sm-5{order:5 !important}.order-sm-last{order:6 !important}.m-sm-0{margin:0 !important}.m-sm-1{margin:.25rem !important}.m-sm-2{margin:.5rem !important}.m-sm-3{margin:1rem !important}.m-sm-4{margin:1.5rem !important}.m-sm-5{margin:3rem !important}.m-sm-auto{margin:auto !important}.mx-sm-0{margin-right:0 !important;margin-left:0 !important}.mx-sm-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-sm-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-sm-3{margin-right:1rem !important;margin-left:1rem !important}.mx-sm-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-sm-5{margin-right:3rem !important;margin-left:3rem !important}.mx-sm-auto{margin-right:auto !important;margin-left:auto !important}.my-sm-0{margin-top:0 !important;margin-bottom:0 !important}.my-sm-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-sm-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-sm-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-sm-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-sm-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-sm-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-sm-0{margin-top:0 !important}.mt-sm-1{margin-top:.25rem !important}.mt-sm-2{margin-top:.5rem !important}.mt-sm-3{margin-top:1rem !important}.mt-sm-4{margin-top:1.5rem !important}.mt-sm-5{margin-top:3rem !important}.mt-sm-auto{margin-top:auto !important}.me-sm-0{margin-right:0 !important}.me-sm-1{margin-right:.25rem !important}.me-sm-2{margin-right:.5rem !important}.me-sm-3{margin-right:1rem !important}.me-sm-4{margin-right:1.5rem !important}.me-sm-5{margin-right:3rem !important}.me-sm-auto{margin-right:auto !important}.mb-sm-0{margin-bottom:0 !important}.mb-sm-1{margin-bottom:.25rem !important}.mb-sm-2{margin-bottom:.5rem !important}.mb-sm-3{margin-bottom:1rem !important}.mb-sm-4{margin-bottom:1.5rem !important}.mb-sm-5{margin-bottom:3rem !important}.mb-sm-auto{margin-bottom:auto !important}.ms-sm-0{margin-left:0 !important}.ms-sm-1{margin-left:.25rem !important}.ms-sm-2{margin-left:.5rem !important}.ms-sm-3{margin-left:1rem !important}.ms-sm-4{margin-left:1.5rem !important}.ms-sm-5{margin-left:3rem !important}.ms-sm-auto{margin-left:auto !important}.p-sm-0{padding:0 !important}.p-sm-1{padding:.25rem !important}.p-sm-2{padding:.5rem !important}.p-sm-3{padding:1rem !important}.p-sm-4{padding:1.5rem !important}.p-sm-5{padding:3rem !important}.px-sm-0{padding-right:0 !important;padding-left:0 !important}.px-sm-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-sm-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-sm-3{padding-right:1rem !important;padding-left:1rem !important}.px-sm-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-sm-5{padding-right:3rem !important;padding-left:3rem !important}.py-sm-0{padding-top:0 !important;padding-bottom:0 !important}.py-sm-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-sm-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-sm-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-sm-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-sm-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-sm-0{padding-top:0 !important}.pt-sm-1{padding-top:.25rem !important}.pt-sm-2{padding-top:.5rem !important}.pt-sm-3{padding-top:1rem !important}.pt-sm-4{padding-top:1.5rem !important}.pt-sm-5{padding-top:3rem !important}.pe-sm-0{padding-right:0 !important}.pe-sm-1{padding-right:.25rem !important}.pe-sm-2{padding-right:.5rem !important}.pe-sm-3{padding-right:1rem !important}.pe-sm-4{padding-right:1.5rem !important}.pe-sm-5{padding-right:3rem !important}.pb-sm-0{padding-bottom:0 !important}.pb-sm-1{padding-bottom:.25rem !important}.pb-sm-2{padding-bottom:.5rem !important}.pb-sm-3{padding-bottom:1rem !important}.pb-sm-4{padding-bottom:1.5rem !important}.pb-sm-5{padding-bottom:3rem !important}.ps-sm-0{padding-left:0 !important}.ps-sm-1{padding-left:.25rem !important}.ps-sm-2{padding-left:.5rem !important}.ps-sm-3{padding-left:1rem !important}.ps-sm-4{padding-left:1.5rem !important}.ps-sm-5{padding-left:3rem !important}.gap-sm-0{gap:0 !important}.gap-sm-1{gap:.25rem !important}.gap-sm-2{gap:.5rem !important}.gap-sm-3{gap:1rem !important}.gap-sm-4{gap:1.5rem !important}.gap-sm-5{gap:3rem !important}.row-gap-sm-0{row-gap:0 !important}.row-gap-sm-1{row-gap:.25rem !important}.row-gap-sm-2{row-gap:.5rem !important}.row-gap-sm-3{row-gap:1rem !important}.row-gap-sm-4{row-gap:1.5rem !important}.row-gap-sm-5{row-gap:3rem !important}.column-gap-sm-0{column-gap:0 !important}.column-gap-sm-1{column-gap:.25rem !important}.column-gap-sm-2{column-gap:.5rem !important}.column-gap-sm-3{column-gap:1rem !important}.column-gap-sm-4{column-gap:1.5rem !important}.column-gap-sm-5{column-gap:3rem !important}.text-sm-start{text-align:left !important}.text-sm-end{text-align:right !important}.text-sm-center{text-align:center !important}}@media(min-width: 768px){.float-md-start{float:left !important}.float-md-end{float:right !important}.float-md-none{float:none !important}.object-fit-md-contain{object-fit:contain !important}.object-fit-md-cover{object-fit:cover !important}.object-fit-md-fill{object-fit:fill !important}.object-fit-md-scale{object-fit:scale-down !important}.object-fit-md-none{object-fit:none !important}.d-md-inline{display:inline !important}.d-md-inline-block{display:inline-block !important}.d-md-block{display:block !important}.d-md-grid{display:grid !important}.d-md-inline-grid{display:inline-grid !important}.d-md-table{display:table !important}.d-md-table-row{display:table-row !important}.d-md-table-cell{display:table-cell !important}.d-md-flex{display:flex !important}.d-md-inline-flex{display:inline-flex !important}.d-md-none{display:none !important}.flex-md-fill{flex:1 1 auto !important}.flex-md-row{flex-direction:row !important}.flex-md-column{flex-direction:column !important}.flex-md-row-reverse{flex-direction:row-reverse !important}.flex-md-column-reverse{flex-direction:column-reverse !important}.flex-md-grow-0{flex-grow:0 !important}.flex-md-grow-1{flex-grow:1 !important}.flex-md-shrink-0{flex-shrink:0 !important}.flex-md-shrink-1{flex-shrink:1 !important}.flex-md-wrap{flex-wrap:wrap !important}.flex-md-nowrap{flex-wrap:nowrap !important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-md-start{justify-content:flex-start !important}.justify-content-md-end{justify-content:flex-end !important}.justify-content-md-center{justify-content:center !important}.justify-content-md-between{justify-content:space-between !important}.justify-content-md-around{justify-content:space-around !important}.justify-content-md-evenly{justify-content:space-evenly !important}.align-items-md-start{align-items:flex-start !important}.align-items-md-end{align-items:flex-end !important}.align-items-md-center{align-items:center !important}.align-items-md-baseline{align-items:baseline !important}.align-items-md-stretch{align-items:stretch !important}.align-content-md-start{align-content:flex-start !important}.align-content-md-end{align-content:flex-end !important}.align-content-md-center{align-content:center !important}.align-content-md-between{align-content:space-between !important}.align-content-md-around{align-content:space-around !important}.align-content-md-stretch{align-content:stretch !important}.align-self-md-auto{align-self:auto !important}.align-self-md-start{align-self:flex-start !important}.align-self-md-end{align-self:flex-end !important}.align-self-md-center{align-self:center !important}.align-self-md-baseline{align-self:baseline !important}.align-self-md-stretch{align-self:stretch !important}.order-md-first{order:-1 !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}.order-md-last{order:6 !important}.m-md-0{margin:0 !important}.m-md-1{margin:.25rem !important}.m-md-2{margin:.5rem !important}.m-md-3{margin:1rem !important}.m-md-4{margin:1.5rem !important}.m-md-5{margin:3rem !important}.m-md-auto{margin:auto !important}.mx-md-0{margin-right:0 !important;margin-left:0 !important}.mx-md-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-md-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-md-3{margin-right:1rem !important;margin-left:1rem !important}.mx-md-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-md-5{margin-right:3rem !important;margin-left:3rem !important}.mx-md-auto{margin-right:auto !important;margin-left:auto !important}.my-md-0{margin-top:0 !important;margin-bottom:0 !important}.my-md-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-md-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-md-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-md-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-md-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-md-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-md-0{margin-top:0 !important}.mt-md-1{margin-top:.25rem !important}.mt-md-2{margin-top:.5rem !important}.mt-md-3{margin-top:1rem !important}.mt-md-4{margin-top:1.5rem !important}.mt-md-5{margin-top:3rem !important}.mt-md-auto{margin-top:auto !important}.me-md-0{margin-right:0 !important}.me-md-1{margin-right:.25rem !important}.me-md-2{margin-right:.5rem !important}.me-md-3{margin-right:1rem !important}.me-md-4{margin-right:1.5rem !important}.me-md-5{margin-right:3rem !important}.me-md-auto{margin-right:auto !important}.mb-md-0{margin-bottom:0 !important}.mb-md-1{margin-bottom:.25rem !important}.mb-md-2{margin-bottom:.5rem !important}.mb-md-3{margin-bottom:1rem !important}.mb-md-4{margin-bottom:1.5rem !important}.mb-md-5{margin-bottom:3rem !important}.mb-md-auto{margin-bottom:auto !important}.ms-md-0{margin-left:0 !important}.ms-md-1{margin-left:.25rem !important}.ms-md-2{margin-left:.5rem !important}.ms-md-3{margin-left:1rem !important}.ms-md-4{margin-left:1.5rem !important}.ms-md-5{margin-left:3rem !important}.ms-md-auto{margin-left:auto !important}.p-md-0{padding:0 !important}.p-md-1{padding:.25rem !important}.p-md-2{padding:.5rem !important}.p-md-3{padding:1rem !important}.p-md-4{padding:1.5rem !important}.p-md-5{padding:3rem !important}.px-md-0{padding-right:0 !important;padding-left:0 !important}.px-md-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-md-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-md-3{padding-right:1rem !important;padding-left:1rem !important}.px-md-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-md-5{padding-right:3rem !important;padding-left:3rem !important}.py-md-0{padding-top:0 !important;padding-bottom:0 !important}.py-md-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-md-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-md-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-md-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-md-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-md-0{padding-top:0 !important}.pt-md-1{padding-top:.25rem !important}.pt-md-2{padding-top:.5rem !important}.pt-md-3{padding-top:1rem !important}.pt-md-4{padding-top:1.5rem !important}.pt-md-5{padding-top:3rem !important}.pe-md-0{padding-right:0 !important}.pe-md-1{padding-right:.25rem !important}.pe-md-2{padding-right:.5rem !important}.pe-md-3{padding-right:1rem !important}.pe-md-4{padding-right:1.5rem !important}.pe-md-5{padding-right:3rem !important}.pb-md-0{padding-bottom:0 !important}.pb-md-1{padding-bottom:.25rem !important}.pb-md-2{padding-bottom:.5rem !important}.pb-md-3{padding-bottom:1rem !important}.pb-md-4{padding-bottom:1.5rem !important}.pb-md-5{padding-bottom:3rem !important}.ps-md-0{padding-left:0 !important}.ps-md-1{padding-left:.25rem !important}.ps-md-2{padding-left:.5rem !important}.ps-md-3{padding-left:1rem !important}.ps-md-4{padding-left:1.5rem !important}.ps-md-5{padding-left:3rem !important}.gap-md-0{gap:0 !important}.gap-md-1{gap:.25rem !important}.gap-md-2{gap:.5rem !important}.gap-md-3{gap:1rem !important}.gap-md-4{gap:1.5rem !important}.gap-md-5{gap:3rem !important}.row-gap-md-0{row-gap:0 !important}.row-gap-md-1{row-gap:.25rem !important}.row-gap-md-2{row-gap:.5rem !important}.row-gap-md-3{row-gap:1rem !important}.row-gap-md-4{row-gap:1.5rem !important}.row-gap-md-5{row-gap:3rem !important}.column-gap-md-0{column-gap:0 !important}.column-gap-md-1{column-gap:.25rem !important}.column-gap-md-2{column-gap:.5rem !important}.column-gap-md-3{column-gap:1rem !important}.column-gap-md-4{column-gap:1.5rem !important}.column-gap-md-5{column-gap:3rem !important}.text-md-start{text-align:left !important}.text-md-end{text-align:right !important}.text-md-center{text-align:center !important}}@media(min-width: 992px){.float-lg-start{float:left !important}.float-lg-end{float:right !important}.float-lg-none{float:none !important}.object-fit-lg-contain{object-fit:contain !important}.object-fit-lg-cover{object-fit:cover !important}.object-fit-lg-fill{object-fit:fill !important}.object-fit-lg-scale{object-fit:scale-down !important}.object-fit-lg-none{object-fit:none !important}.d-lg-inline{display:inline !important}.d-lg-inline-block{display:inline-block !important}.d-lg-block{display:block !important}.d-lg-grid{display:grid !important}.d-lg-inline-grid{display:inline-grid !important}.d-lg-table{display:table !important}.d-lg-table-row{display:table-row !important}.d-lg-table-cell{display:table-cell !important}.d-lg-flex{display:flex !important}.d-lg-inline-flex{display:inline-flex !important}.d-lg-none{display:none !important}.flex-lg-fill{flex:1 1 auto !important}.flex-lg-row{flex-direction:row !important}.flex-lg-column{flex-direction:column !important}.flex-lg-row-reverse{flex-direction:row-reverse !important}.flex-lg-column-reverse{flex-direction:column-reverse !important}.flex-lg-grow-0{flex-grow:0 !important}.flex-lg-grow-1{flex-grow:1 !important}.flex-lg-shrink-0{flex-shrink:0 !important}.flex-lg-shrink-1{flex-shrink:1 !important}.flex-lg-wrap{flex-wrap:wrap !important}.flex-lg-nowrap{flex-wrap:nowrap !important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-lg-start{justify-content:flex-start !important}.justify-content-lg-end{justify-content:flex-end !important}.justify-content-lg-center{justify-content:center !important}.justify-content-lg-between{justify-content:space-between !important}.justify-content-lg-around{justify-content:space-around !important}.justify-content-lg-evenly{justify-content:space-evenly !important}.align-items-lg-start{align-items:flex-start !important}.align-items-lg-end{align-items:flex-end !important}.align-items-lg-center{align-items:center !important}.align-items-lg-baseline{align-items:baseline !important}.align-items-lg-stretch{align-items:stretch !important}.align-content-lg-start{align-content:flex-start !important}.align-content-lg-end{align-content:flex-end !important}.align-content-lg-center{align-content:center !important}.align-content-lg-between{align-content:space-between !important}.align-content-lg-around{align-content:space-around !important}.align-content-lg-stretch{align-content:stretch !important}.align-self-lg-auto{align-self:auto !important}.align-self-lg-start{align-self:flex-start !important}.align-self-lg-end{align-self:flex-end !important}.align-self-lg-center{align-self:center !important}.align-self-lg-baseline{align-self:baseline !important}.align-self-lg-stretch{align-self:stretch !important}.order-lg-first{order:-1 !important}.order-lg-0{order:0 !important}.order-lg-1{order:1 !important}.order-lg-2{order:2 !important}.order-lg-3{order:3 !important}.order-lg-4{order:4 !important}.order-lg-5{order:5 !important}.order-lg-last{order:6 !important}.m-lg-0{margin:0 !important}.m-lg-1{margin:.25rem !important}.m-lg-2{margin:.5rem !important}.m-lg-3{margin:1rem !important}.m-lg-4{margin:1.5rem !important}.m-lg-5{margin:3rem !important}.m-lg-auto{margin:auto !important}.mx-lg-0{margin-right:0 !important;margin-left:0 !important}.mx-lg-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-lg-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-lg-3{margin-right:1rem !important;margin-left:1rem !important}.mx-lg-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-lg-5{margin-right:3rem !important;margin-left:3rem !important}.mx-lg-auto{margin-right:auto !important;margin-left:auto !important}.my-lg-0{margin-top:0 !important;margin-bottom:0 !important}.my-lg-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-lg-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-lg-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-lg-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-lg-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-lg-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-lg-0{margin-top:0 !important}.mt-lg-1{margin-top:.25rem !important}.mt-lg-2{margin-top:.5rem !important}.mt-lg-3{margin-top:1rem !important}.mt-lg-4{margin-top:1.5rem !important}.mt-lg-5{margin-top:3rem !important}.mt-lg-auto{margin-top:auto !important}.me-lg-0{margin-right:0 !important}.me-lg-1{margin-right:.25rem !important}.me-lg-2{margin-right:.5rem !important}.me-lg-3{margin-right:1rem !important}.me-lg-4{margin-right:1.5rem !important}.me-lg-5{margin-right:3rem !important}.me-lg-auto{margin-right:auto !important}.mb-lg-0{margin-bottom:0 !important}.mb-lg-1{margin-bottom:.25rem !important}.mb-lg-2{margin-bottom:.5rem !important}.mb-lg-3{margin-bottom:1rem !important}.mb-lg-4{margin-bottom:1.5rem !important}.mb-lg-5{margin-bottom:3rem !important}.mb-lg-auto{margin-bottom:auto !important}.ms-lg-0{margin-left:0 !important}.ms-lg-1{margin-left:.25rem !important}.ms-lg-2{margin-left:.5rem !important}.ms-lg-3{margin-left:1rem !important}.ms-lg-4{margin-left:1.5rem !important}.ms-lg-5{margin-left:3rem !important}.ms-lg-auto{margin-left:auto !important}.p-lg-0{padding:0 !important}.p-lg-1{padding:.25rem !important}.p-lg-2{padding:.5rem !important}.p-lg-3{padding:1rem !important}.p-lg-4{padding:1.5rem !important}.p-lg-5{padding:3rem !important}.px-lg-0{padding-right:0 !important;padding-left:0 !important}.px-lg-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-lg-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-lg-3{padding-right:1rem !important;padding-left:1rem !important}.px-lg-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-lg-5{padding-right:3rem !important;padding-left:3rem !important}.py-lg-0{padding-top:0 !important;padding-bottom:0 !important}.py-lg-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-lg-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-lg-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-lg-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-lg-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-lg-0{padding-top:0 !important}.pt-lg-1{padding-top:.25rem !important}.pt-lg-2{padding-top:.5rem !important}.pt-lg-3{padding-top:1rem !important}.pt-lg-4{padding-top:1.5rem !important}.pt-lg-5{padding-top:3rem !important}.pe-lg-0{padding-right:0 !important}.pe-lg-1{padding-right:.25rem !important}.pe-lg-2{padding-right:.5rem !important}.pe-lg-3{padding-right:1rem !important}.pe-lg-4{padding-right:1.5rem !important}.pe-lg-5{padding-right:3rem !important}.pb-lg-0{padding-bottom:0 !important}.pb-lg-1{padding-bottom:.25rem !important}.pb-lg-2{padding-bottom:.5rem !important}.pb-lg-3{padding-bottom:1rem !important}.pb-lg-4{padding-bottom:1.5rem !important}.pb-lg-5{padding-bottom:3rem !important}.ps-lg-0{padding-left:0 !important}.ps-lg-1{padding-left:.25rem !important}.ps-lg-2{padding-left:.5rem !important}.ps-lg-3{padding-left:1rem !important}.ps-lg-4{padding-left:1.5rem !important}.ps-lg-5{padding-left:3rem !important}.gap-lg-0{gap:0 !important}.gap-lg-1{gap:.25rem !important}.gap-lg-2{gap:.5rem !important}.gap-lg-3{gap:1rem !important}.gap-lg-4{gap:1.5rem !important}.gap-lg-5{gap:3rem !important}.row-gap-lg-0{row-gap:0 !important}.row-gap-lg-1{row-gap:.25rem !important}.row-gap-lg-2{row-gap:.5rem !important}.row-gap-lg-3{row-gap:1rem !important}.row-gap-lg-4{row-gap:1.5rem !important}.row-gap-lg-5{row-gap:3rem !important}.column-gap-lg-0{column-gap:0 !important}.column-gap-lg-1{column-gap:.25rem !important}.column-gap-lg-2{column-gap:.5rem !important}.column-gap-lg-3{column-gap:1rem !important}.column-gap-lg-4{column-gap:1.5rem !important}.column-gap-lg-5{column-gap:3rem !important}.text-lg-start{text-align:left !important}.text-lg-end{text-align:right !important}.text-lg-center{text-align:center !important}}@media(min-width: 1200px){.float-xl-start{float:left !important}.float-xl-end{float:right !important}.float-xl-none{float:none !important}.object-fit-xl-contain{object-fit:contain !important}.object-fit-xl-cover{object-fit:cover !important}.object-fit-xl-fill{object-fit:fill !important}.object-fit-xl-scale{object-fit:scale-down !important}.object-fit-xl-none{object-fit:none !important}.d-xl-inline{display:inline !important}.d-xl-inline-block{display:inline-block !important}.d-xl-block{display:block !important}.d-xl-grid{display:grid !important}.d-xl-inline-grid{display:inline-grid !important}.d-xl-table{display:table !important}.d-xl-table-row{display:table-row !important}.d-xl-table-cell{display:table-cell !important}.d-xl-flex{display:flex !important}.d-xl-inline-flex{display:inline-flex !important}.d-xl-none{display:none !important}.flex-xl-fill{flex:1 1 auto !important}.flex-xl-row{flex-direction:row !important}.flex-xl-column{flex-direction:column !important}.flex-xl-row-reverse{flex-direction:row-reverse !important}.flex-xl-column-reverse{flex-direction:column-reverse !important}.flex-xl-grow-0{flex-grow:0 !important}.flex-xl-grow-1{flex-grow:1 !important}.flex-xl-shrink-0{flex-shrink:0 !important}.flex-xl-shrink-1{flex-shrink:1 !important}.flex-xl-wrap{flex-wrap:wrap !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xl-start{justify-content:flex-start !important}.justify-content-xl-end{justify-content:flex-end !important}.justify-content-xl-center{justify-content:center !important}.justify-content-xl-between{justify-content:space-between !important}.justify-content-xl-around{justify-content:space-around !important}.justify-content-xl-evenly{justify-content:space-evenly !important}.align-items-xl-start{align-items:flex-start !important}.align-items-xl-end{align-items:flex-end !important}.align-items-xl-center{align-items:center !important}.align-items-xl-baseline{align-items:baseline !important}.align-items-xl-stretch{align-items:stretch !important}.align-content-xl-start{align-content:flex-start !important}.align-content-xl-end{align-content:flex-end !important}.align-content-xl-center{align-content:center !important}.align-content-xl-between{align-content:space-between !important}.align-content-xl-around{align-content:space-around !important}.align-content-xl-stretch{align-content:stretch !important}.align-self-xl-auto{align-self:auto !important}.align-self-xl-start{align-self:flex-start !important}.align-self-xl-end{align-self:flex-end !important}.align-self-xl-center{align-self:center !important}.align-self-xl-baseline{align-self:baseline !important}.align-self-xl-stretch{align-self:stretch !important}.order-xl-first{order:-1 !important}.order-xl-0{order:0 !important}.order-xl-1{order:1 !important}.order-xl-2{order:2 !important}.order-xl-3{order:3 !important}.order-xl-4{order:4 !important}.order-xl-5{order:5 !important}.order-xl-last{order:6 !important}.m-xl-0{margin:0 !important}.m-xl-1{margin:.25rem !important}.m-xl-2{margin:.5rem !important}.m-xl-3{margin:1rem !important}.m-xl-4{margin:1.5rem !important}.m-xl-5{margin:3rem !important}.m-xl-auto{margin:auto !important}.mx-xl-0{margin-right:0 !important;margin-left:0 !important}.mx-xl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}.my-xl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xl-0{margin-top:0 !important}.mt-xl-1{margin-top:.25rem !important}.mt-xl-2{margin-top:.5rem !important}.mt-xl-3{margin-top:1rem !important}.mt-xl-4{margin-top:1.5rem !important}.mt-xl-5{margin-top:3rem !important}.mt-xl-auto{margin-top:auto !important}.me-xl-0{margin-right:0 !important}.me-xl-1{margin-right:.25rem !important}.me-xl-2{margin-right:.5rem !important}.me-xl-3{margin-right:1rem !important}.me-xl-4{margin-right:1.5rem !important}.me-xl-5{margin-right:3rem !important}.me-xl-auto{margin-right:auto !important}.mb-xl-0{margin-bottom:0 !important}.mb-xl-1{margin-bottom:.25rem !important}.mb-xl-2{margin-bottom:.5rem !important}.mb-xl-3{margin-bottom:1rem !important}.mb-xl-4{margin-bottom:1.5rem !important}.mb-xl-5{margin-bottom:3rem !important}.mb-xl-auto{margin-bottom:auto !important}.ms-xl-0{margin-left:0 !important}.ms-xl-1{margin-left:.25rem !important}.ms-xl-2{margin-left:.5rem !important}.ms-xl-3{margin-left:1rem !important}.ms-xl-4{margin-left:1.5rem !important}.ms-xl-5{margin-left:3rem !important}.ms-xl-auto{margin-left:auto !important}.p-xl-0{padding:0 !important}.p-xl-1{padding:.25rem !important}.p-xl-2{padding:.5rem !important}.p-xl-3{padding:1rem !important}.p-xl-4{padding:1.5rem !important}.p-xl-5{padding:3rem !important}.px-xl-0{padding-right:0 !important;padding-left:0 !important}.px-xl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xl-0{padding-top:0 !important}.pt-xl-1{padding-top:.25rem !important}.pt-xl-2{padding-top:.5rem !important}.pt-xl-3{padding-top:1rem !important}.pt-xl-4{padding-top:1.5rem !important}.pt-xl-5{padding-top:3rem !important}.pe-xl-0{padding-right:0 !important}.pe-xl-1{padding-right:.25rem !important}.pe-xl-2{padding-right:.5rem !important}.pe-xl-3{padding-right:1rem !important}.pe-xl-4{padding-right:1.5rem !important}.pe-xl-5{padding-right:3rem !important}.pb-xl-0{padding-bottom:0 !important}.pb-xl-1{padding-bottom:.25rem !important}.pb-xl-2{padding-bottom:.5rem !important}.pb-xl-3{padding-bottom:1rem !important}.pb-xl-4{padding-bottom:1.5rem !important}.pb-xl-5{padding-bottom:3rem !important}.ps-xl-0{padding-left:0 !important}.ps-xl-1{padding-left:.25rem !important}.ps-xl-2{padding-left:.5rem !important}.ps-xl-3{padding-left:1rem !important}.ps-xl-4{padding-left:1.5rem !important}.ps-xl-5{padding-left:3rem !important}.gap-xl-0{gap:0 !important}.gap-xl-1{gap:.25rem !important}.gap-xl-2{gap:.5rem !important}.gap-xl-3{gap:1rem !important}.gap-xl-4{gap:1.5rem !important}.gap-xl-5{gap:3rem !important}.row-gap-xl-0{row-gap:0 !important}.row-gap-xl-1{row-gap:.25rem !important}.row-gap-xl-2{row-gap:.5rem !important}.row-gap-xl-3{row-gap:1rem !important}.row-gap-xl-4{row-gap:1.5rem !important}.row-gap-xl-5{row-gap:3rem !important}.column-gap-xl-0{column-gap:0 !important}.column-gap-xl-1{column-gap:.25rem !important}.column-gap-xl-2{column-gap:.5rem !important}.column-gap-xl-3{column-gap:1rem !important}.column-gap-xl-4{column-gap:1.5rem !important}.column-gap-xl-5{column-gap:3rem !important}.text-xl-start{text-align:left !important}.text-xl-end{text-align:right !important}.text-xl-center{text-align:center !important}}@media(min-width: 1400px){.float-xxl-start{float:left !important}.float-xxl-end{float:right !important}.float-xxl-none{float:none !important}.object-fit-xxl-contain{object-fit:contain !important}.object-fit-xxl-cover{object-fit:cover !important}.object-fit-xxl-fill{object-fit:fill !important}.object-fit-xxl-scale{object-fit:scale-down !important}.object-fit-xxl-none{object-fit:none !important}.d-xxl-inline{display:inline !important}.d-xxl-inline-block{display:inline-block !important}.d-xxl-block{display:block !important}.d-xxl-grid{display:grid !important}.d-xxl-inline-grid{display:inline-grid !important}.d-xxl-table{display:table !important}.d-xxl-table-row{display:table-row !important}.d-xxl-table-cell{display:table-cell !important}.d-xxl-flex{display:flex !important}.d-xxl-inline-flex{display:inline-flex !important}.d-xxl-none{display:none !important}.flex-xxl-fill{flex:1 1 auto !important}.flex-xxl-row{flex-direction:row !important}.flex-xxl-column{flex-direction:column !important}.flex-xxl-row-reverse{flex-direction:row-reverse !important}.flex-xxl-column-reverse{flex-direction:column-reverse !important}.flex-xxl-grow-0{flex-grow:0 !important}.flex-xxl-grow-1{flex-grow:1 !important}.flex-xxl-shrink-0{flex-shrink:0 !important}.flex-xxl-shrink-1{flex-shrink:1 !important}.flex-xxl-wrap{flex-wrap:wrap !important}.flex-xxl-nowrap{flex-wrap:nowrap !important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse !important}.justify-content-xxl-start{justify-content:flex-start !important}.justify-content-xxl-end{justify-content:flex-end !important}.justify-content-xxl-center{justify-content:center !important}.justify-content-xxl-between{justify-content:space-between !important}.justify-content-xxl-around{justify-content:space-around !important}.justify-content-xxl-evenly{justify-content:space-evenly !important}.align-items-xxl-start{align-items:flex-start !important}.align-items-xxl-end{align-items:flex-end !important}.align-items-xxl-center{align-items:center !important}.align-items-xxl-baseline{align-items:baseline !important}.align-items-xxl-stretch{align-items:stretch !important}.align-content-xxl-start{align-content:flex-start !important}.align-content-xxl-end{align-content:flex-end !important}.align-content-xxl-center{align-content:center !important}.align-content-xxl-between{align-content:space-between !important}.align-content-xxl-around{align-content:space-around !important}.align-content-xxl-stretch{align-content:stretch !important}.align-self-xxl-auto{align-self:auto !important}.align-self-xxl-start{align-self:flex-start !important}.align-self-xxl-end{align-self:flex-end !important}.align-self-xxl-center{align-self:center !important}.align-self-xxl-baseline{align-self:baseline !important}.align-self-xxl-stretch{align-self:stretch !important}.order-xxl-first{order:-1 !important}.order-xxl-0{order:0 !important}.order-xxl-1{order:1 !important}.order-xxl-2{order:2 !important}.order-xxl-3{order:3 !important}.order-xxl-4{order:4 !important}.order-xxl-5{order:5 !important}.order-xxl-last{order:6 !important}.m-xxl-0{margin:0 !important}.m-xxl-1{margin:.25rem !important}.m-xxl-2{margin:.5rem !important}.m-xxl-3{margin:1rem !important}.m-xxl-4{margin:1.5rem !important}.m-xxl-5{margin:3rem !important}.m-xxl-auto{margin:auto !important}.mx-xxl-0{margin-right:0 !important;margin-left:0 !important}.mx-xxl-1{margin-right:.25rem !important;margin-left:.25rem !important}.mx-xxl-2{margin-right:.5rem !important;margin-left:.5rem !important}.mx-xxl-3{margin-right:1rem !important;margin-left:1rem !important}.mx-xxl-4{margin-right:1.5rem !important;margin-left:1.5rem !important}.mx-xxl-5{margin-right:3rem !important;margin-left:3rem !important}.mx-xxl-auto{margin-right:auto !important;margin-left:auto !important}.my-xxl-0{margin-top:0 !important;margin-bottom:0 !important}.my-xxl-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-xxl-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.my-xxl-3{margin-top:1rem !important;margin-bottom:1rem !important}.my-xxl-4{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.my-xxl-5{margin-top:3rem !important;margin-bottom:3rem !important}.my-xxl-auto{margin-top:auto !important;margin-bottom:auto !important}.mt-xxl-0{margin-top:0 !important}.mt-xxl-1{margin-top:.25rem !important}.mt-xxl-2{margin-top:.5rem !important}.mt-xxl-3{margin-top:1rem !important}.mt-xxl-4{margin-top:1.5rem !important}.mt-xxl-5{margin-top:3rem !important}.mt-xxl-auto{margin-top:auto !important}.me-xxl-0{margin-right:0 !important}.me-xxl-1{margin-right:.25rem !important}.me-xxl-2{margin-right:.5rem !important}.me-xxl-3{margin-right:1rem !important}.me-xxl-4{margin-right:1.5rem !important}.me-xxl-5{margin-right:3rem !important}.me-xxl-auto{margin-right:auto !important}.mb-xxl-0{margin-bottom:0 !important}.mb-xxl-1{margin-bottom:.25rem !important}.mb-xxl-2{margin-bottom:.5rem !important}.mb-xxl-3{margin-bottom:1rem !important}.mb-xxl-4{margin-bottom:1.5rem !important}.mb-xxl-5{margin-bottom:3rem !important}.mb-xxl-auto{margin-bottom:auto !important}.ms-xxl-0{margin-left:0 !important}.ms-xxl-1{margin-left:.25rem !important}.ms-xxl-2{margin-left:.5rem !important}.ms-xxl-3{margin-left:1rem !important}.ms-xxl-4{margin-left:1.5rem !important}.ms-xxl-5{margin-left:3rem !important}.ms-xxl-auto{margin-left:auto !important}.p-xxl-0{padding:0 !important}.p-xxl-1{padding:.25rem !important}.p-xxl-2{padding:.5rem !important}.p-xxl-3{padding:1rem !important}.p-xxl-4{padding:1.5rem !important}.p-xxl-5{padding:3rem !important}.px-xxl-0{padding-right:0 !important;padding-left:0 !important}.px-xxl-1{padding-right:.25rem !important;padding-left:.25rem !important}.px-xxl-2{padding-right:.5rem !important;padding-left:.5rem !important}.px-xxl-3{padding-right:1rem !important;padding-left:1rem !important}.px-xxl-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.px-xxl-5{padding-right:3rem !important;padding-left:3rem !important}.py-xxl-0{padding-top:0 !important;padding-bottom:0 !important}.py-xxl-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.py-xxl-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.py-xxl-3{padding-top:1rem !important;padding-bottom:1rem !important}.py-xxl-4{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.py-xxl-5{padding-top:3rem !important;padding-bottom:3rem !important}.pt-xxl-0{padding-top:0 !important}.pt-xxl-1{padding-top:.25rem !important}.pt-xxl-2{padding-top:.5rem !important}.pt-xxl-3{padding-top:1rem !important}.pt-xxl-4{padding-top:1.5rem !important}.pt-xxl-5{padding-top:3rem !important}.pe-xxl-0{padding-right:0 !important}.pe-xxl-1{padding-right:.25rem !important}.pe-xxl-2{padding-right:.5rem !important}.pe-xxl-3{padding-right:1rem !important}.pe-xxl-4{padding-right:1.5rem !important}.pe-xxl-5{padding-right:3rem !important}.pb-xxl-0{padding-bottom:0 !important}.pb-xxl-1{padding-bottom:.25rem !important}.pb-xxl-2{padding-bottom:.5rem !important}.pb-xxl-3{padding-bottom:1rem !important}.pb-xxl-4{padding-bottom:1.5rem !important}.pb-xxl-5{padding-bottom:3rem !important}.ps-xxl-0{padding-left:0 !important}.ps-xxl-1{padding-left:.25rem !important}.ps-xxl-2{padding-left:.5rem !important}.ps-xxl-3{padding-left:1rem !important}.ps-xxl-4{padding-left:1.5rem !important}.ps-xxl-5{padding-left:3rem !important}.gap-xxl-0{gap:0 !important}.gap-xxl-1{gap:.25rem !important}.gap-xxl-2{gap:.5rem !important}.gap-xxl-3{gap:1rem !important}.gap-xxl-4{gap:1.5rem !important}.gap-xxl-5{gap:3rem !important}.row-gap-xxl-0{row-gap:0 !important}.row-gap-xxl-1{row-gap:.25rem !important}.row-gap-xxl-2{row-gap:.5rem !important}.row-gap-xxl-3{row-gap:1rem !important}.row-gap-xxl-4{row-gap:1.5rem !important}.row-gap-xxl-5{row-gap:3rem !important}.column-gap-xxl-0{column-gap:0 !important}.column-gap-xxl-1{column-gap:.25rem !important}.column-gap-xxl-2{column-gap:.5rem !important}.column-gap-xxl-3{column-gap:1rem !important}.column-gap-xxl-4{column-gap:1.5rem !important}.column-gap-xxl-5{column-gap:3rem !important}.text-xxl-start{text-align:left !important}.text-xxl-end{text-align:right !important}.text-xxl-center{text-align:center !important}}.bg-default{color:#fff}.bg-primary{color:#fff}.bg-secondary{color:#fff}.bg-success{color:#fff}.bg-info{color:#fff}.bg-warning{color:#fff}.bg-danger{color:#fff}.bg-light{color:#000}.bg-dark{color:#fff}@media(min-width: 1200px){.fs-1{font-size:2rem !important}.fs-2{font-size:1.65rem !important}.fs-3{font-size:1.45rem !important}}@media print{.d-print-inline{display:inline !important}.d-print-inline-block{display:inline-block !important}.d-print-block{display:block !important}.d-print-grid{display:grid !important}.d-print-inline-grid{display:inline-grid !important}.d-print-table{display:table !important}.d-print-table-row{display:table-row !important}.d-print-table-cell{display:table-cell !important}.d-print-flex{display:flex !important}.d-print-inline-flex{display:inline-flex !important}.d-print-none{display:none !important}}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}.bg-blue{--bslib-color-bg: #2780e3;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #2780e3;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #613d7c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #613d7c;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #e83e8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #e83e8c;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #ff0039;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #ff0039;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #f0ad4e;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #f0ad4e;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #ff7518;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #ff7518;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #3fb618;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #3fb618;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #9954bb;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #9954bb;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #343a40}.bg-default{--bslib-color-bg: #343a40;--bslib-color-fg: #fff}.text-primary{--bslib-color-fg: #2780e3}.bg-primary{--bslib-color-bg: #2780e3;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #343a40}.bg-secondary{--bslib-color-bg: #343a40;--bslib-color-fg: #fff}.text-success{--bslib-color-fg: #3fb618}.bg-success{--bslib-color-bg: #3fb618;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #9954bb}.bg-info{--bslib-color-bg: #9954bb;--bslib-color-fg: #fff}.text-warning{--bslib-color-fg: #ff7518}.bg-warning{--bslib-color-bg: #ff7518;--bslib-color-fg: #fff}.text-danger{--bslib-color-fg: #ff0039}.bg-danger{--bslib-color-bg: #ff0039;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #f8f9fa}.bg-light{--bslib-color-bg: #f8f9fa;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #343a40}.bg-dark{--bslib-color-bg: #343a40;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4053e9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4053e9;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #3e65ba;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #3e65ba;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7466c0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #7466c0;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #7d4d9f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #7d4d9f;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #7792a7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #7792a7;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #7d7c92;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #7d7c92;color:#fff}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #319692;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #319692;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #fff;--bslib-color-bg: #249dc5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #249dc5;color:#fff}.bg-gradient-blue-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #556ed3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #556ed3;color:#fff}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #4d3dec;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #4d3dec;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #6422c3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #6422c3;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9a22c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9a22c9;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #a30aa8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #a30aa8;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #9d4fb0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #9d4fb0;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a3389b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #a3389b;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #56529b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #56529b;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #7a2bdc;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #7a2bdc;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #4a58a5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #4a58a5;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #632bab;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #632bab;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #973d82;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #973d82;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #a02561;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #a02561;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #9a6a6a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #9a6a6a;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a05354;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #a05354;color:#fff}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #536d54;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #536d54;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #477587;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #477587;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #774695;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #774695;color:#fff}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #9b58af;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #9b58af;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b42cb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b42cb5;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b23e86;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #b23e86;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #f1256b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #f1256b;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #fff;--bslib-color-bg: #eb6a73;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #eb6a73;color:#fff}.bg-gradient-pink-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #f1545e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #f1545e;color:#fff}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #a46e5e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #a46e5e;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #fff;--bslib-color-bg: #987690;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #987690;color:#fff}.bg-gradient-pink-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #c8479f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #c8479f;color:#fff}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a9337d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #a9337d;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #c20683;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c20683;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c01854;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #c01854;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #f6195a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #f6195a;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f94541;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #f94541;color:#fff}.bg-gradient-red-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ff2f2c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #ff2f2c;color:#fff}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #b2492c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #b2492c;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #fff;--bslib-color-bg: #a6505f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a6505f;color:#fff}.bg-gradient-red-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #d6226d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #d6226d;color:#fff}.bg-gradient-orange-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a09b8a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #a09b8a;color:#fff}.bg-gradient-orange-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b96e90;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b96e90;color:#fff}.bg-gradient-orange-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b78060;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #b78060;color:#fff}.bg-gradient-orange-pink{--bslib-color-fg: #fff;--bslib-color-bg: #ed8167;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #ed8167;color:#fff}.bg-gradient-orange-red{--bslib-color-fg: #fff;--bslib-color-bg: #f66846;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #f66846;color:#fff}.bg-gradient-orange-yellow{--bslib-color-fg: #000;--bslib-color-bg: #f69738;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #f69738;color:#000}.bg-gradient-orange-green{--bslib-color-fg: #000;--bslib-color-bg: #a9b138;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #a9b138;color:#000}.bg-gradient-orange-teal{--bslib-color-fg: #000;--bslib-color-bg: #9db86b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #9db86b;color:#000}.bg-gradient-orange-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #cd897a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #cd897a;color:#fff}.bg-gradient-yellow-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a97969;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #a97969;color:#fff}.bg-gradient-yellow-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #c24d6f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c24d6f;color:#fff}.bg-gradient-yellow-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c05f40;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #c05f40;color:#fff}.bg-gradient-yellow-pink{--bslib-color-fg: #fff;--bslib-color-bg: #f65f46;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #f65f46;color:#fff}.bg-gradient-yellow-red{--bslib-color-fg: #fff;--bslib-color-bg: #ff4625;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #ff4625;color:#fff}.bg-gradient-yellow-orange{--bslib-color-fg: #000;--bslib-color-bg: #f98b2e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #f98b2e;color:#000}.bg-gradient-yellow-green{--bslib-color-fg: #fff;--bslib-color-bg: #b28f18;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #b28f18;color:#fff}.bg-gradient-yellow-teal{--bslib-color-fg: #fff;--bslib-color-bg: #a6974b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a6974b;color:#fff}.bg-gradient-yellow-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #d66859;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #d66859;color:#fff}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #35a069;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #35a069;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4f746f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4f746f;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4d8640;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #4d8640;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #838646;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #838646;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #8c6d25;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #8c6d25;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #000;--bslib-color-bg: #86b22e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #86b22e;color:#000}.bg-gradient-green-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #8c9c18;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #8c9c18;color:#fff}.bg-gradient-green-teal{--bslib-color-fg: #000;--bslib-color-bg: #33be4b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #33be4b;color:#000}.bg-gradient-green-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #638f59;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #638f59;color:#fff}.bg-gradient-teal-blue{--bslib-color-fg: #fff;--bslib-color-bg: #23acb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #23acb5;color:#fff}.bg-gradient-teal-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#fff}.bg-gradient-teal-purple{--bslib-color-fg: #fff;--bslib-color-bg: #3a918c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #3a918c;color:#fff}.bg-gradient-teal-pink{--bslib-color-fg: #fff;--bslib-color-bg: #709193;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #709193;color:#fff}.bg-gradient-teal-red{--bslib-color-fg: #fff;--bslib-color-bg: #797971;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #797971;color:#fff}.bg-gradient-teal-orange{--bslib-color-fg: #000;--bslib-color-bg: #73be7a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #73be7a;color:#000}.bg-gradient-teal-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #79a764;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #79a764;color:#fff}.bg-gradient-teal-green{--bslib-color-fg: #000;--bslib-color-bg: #2cc164;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #2cc164;color:#000}.bg-gradient-teal-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #509aa5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #509aa5;color:#fff}.bg-gradient-cyan-blue{--bslib-color-fg: #fff;--bslib-color-bg: #6b66cb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #6b66cb;color:#fff}.bg-gradient-cyan-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #8539d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #8539d1;color:#fff}.bg-gradient-cyan-purple{--bslib-color-fg: #fff;--bslib-color-bg: #834ba2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #834ba2;color:#fff}.bg-gradient-cyan-pink{--bslib-color-fg: #fff;--bslib-color-bg: #b94ba8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #b94ba8;color:#fff}.bg-gradient-cyan-red{--bslib-color-fg: #fff;--bslib-color-bg: #c23287;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #c23287;color:#fff}.bg-gradient-cyan-orange{--bslib-color-fg: #fff;--bslib-color-bg: #bc788f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #bc788f;color:#fff}.bg-gradient-cyan-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #c2617a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #c2617a;color:#fff}.bg-gradient-cyan-green{--bslib-color-fg: #fff;--bslib-color-bg: #757b7a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #757b7a;color:#fff}.bg-gradient-cyan-teal{--bslib-color-fg: #fff;--bslib-color-bg: #6983ad;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #6983ad;color:#fff}.tab-content>.tab-pane.html-fill-container{display:none}.tab-content>.active.html-fill-container{display:flex}.tab-content.html-fill-container{padding:0}.bg-blue{--bslib-color-bg: #2780e3;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-blue{--bslib-color-fg: #2780e3;color:var(--bslib-color-fg)}.bg-indigo{--bslib-color-bg: #6610f2;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-indigo{--bslib-color-fg: #6610f2;color:var(--bslib-color-fg)}.bg-purple{--bslib-color-bg: #613d7c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-purple{--bslib-color-fg: #613d7c;color:var(--bslib-color-fg)}.bg-pink{--bslib-color-bg: #e83e8c;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-pink{--bslib-color-fg: #e83e8c;color:var(--bslib-color-fg)}.bg-red{--bslib-color-bg: #ff0039;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-red{--bslib-color-fg: #ff0039;color:var(--bslib-color-fg)}.bg-orange{--bslib-color-bg: #f0ad4e;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-orange{--bslib-color-fg: #f0ad4e;color:var(--bslib-color-fg)}.bg-yellow{--bslib-color-bg: #ff7518;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-yellow{--bslib-color-fg: #ff7518;color:var(--bslib-color-fg)}.bg-green{--bslib-color-bg: #3fb618;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-green{--bslib-color-fg: #3fb618;color:var(--bslib-color-fg)}.bg-teal{--bslib-color-bg: #20c997;--bslib-color-fg: #000;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-teal{--bslib-color-fg: #20c997;color:var(--bslib-color-fg)}.bg-cyan{--bslib-color-bg: #9954bb;--bslib-color-fg: #fff;background-color:var(--bslib-color-bg);color:var(--bslib-color-fg)}.text-cyan{--bslib-color-fg: #9954bb;color:var(--bslib-color-fg)}.text-default{--bslib-color-fg: #343a40}.bg-default{--bslib-color-bg: #343a40;--bslib-color-fg: #fff}.text-primary{--bslib-color-fg: #2780e3}.bg-primary{--bslib-color-bg: #2780e3;--bslib-color-fg: #fff}.text-secondary{--bslib-color-fg: #343a40}.bg-secondary{--bslib-color-bg: #343a40;--bslib-color-fg: #fff}.text-success{--bslib-color-fg: #3fb618}.bg-success{--bslib-color-bg: #3fb618;--bslib-color-fg: #fff}.text-info{--bslib-color-fg: #9954bb}.bg-info{--bslib-color-bg: #9954bb;--bslib-color-fg: #fff}.text-warning{--bslib-color-fg: #ff7518}.bg-warning{--bslib-color-bg: #ff7518;--bslib-color-fg: #fff}.text-danger{--bslib-color-fg: #ff0039}.bg-danger{--bslib-color-bg: #ff0039;--bslib-color-fg: #fff}.text-light{--bslib-color-fg: #f8f9fa}.bg-light{--bslib-color-bg: #f8f9fa;--bslib-color-fg: #000}.text-dark{--bslib-color-fg: #343a40}.bg-dark{--bslib-color-bg: #343a40;--bslib-color-fg: #fff}.bg-gradient-blue-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4053e9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4053e9;color:#fff}.bg-gradient-blue-purple{--bslib-color-fg: #fff;--bslib-color-bg: #3e65ba;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #3e65ba;color:#fff}.bg-gradient-blue-pink{--bslib-color-fg: #fff;--bslib-color-bg: #7466c0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #7466c0;color:#fff}.bg-gradient-blue-red{--bslib-color-fg: #fff;--bslib-color-bg: #7d4d9f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #7d4d9f;color:#fff}.bg-gradient-blue-orange{--bslib-color-fg: #fff;--bslib-color-bg: #7792a7;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #7792a7;color:#fff}.bg-gradient-blue-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #7d7c92;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #7d7c92;color:#fff}.bg-gradient-blue-green{--bslib-color-fg: #fff;--bslib-color-bg: #319692;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #319692;color:#fff}.bg-gradient-blue-teal{--bslib-color-fg: #fff;--bslib-color-bg: #249dc5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #249dc5;color:#fff}.bg-gradient-blue-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #556ed3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #2780e3 var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #556ed3;color:#fff}.bg-gradient-indigo-blue{--bslib-color-fg: #fff;--bslib-color-bg: #4d3dec;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #4d3dec;color:#fff}.bg-gradient-indigo-purple{--bslib-color-fg: #fff;--bslib-color-bg: #6422c3;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #6422c3;color:#fff}.bg-gradient-indigo-pink{--bslib-color-fg: #fff;--bslib-color-bg: #9a22c9;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #9a22c9;color:#fff}.bg-gradient-indigo-red{--bslib-color-fg: #fff;--bslib-color-bg: #a30aa8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #a30aa8;color:#fff}.bg-gradient-indigo-orange{--bslib-color-fg: #fff;--bslib-color-bg: #9d4fb0;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #9d4fb0;color:#fff}.bg-gradient-indigo-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a3389b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #a3389b;color:#fff}.bg-gradient-indigo-green{--bslib-color-fg: #fff;--bslib-color-bg: #56529b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #56529b;color:#fff}.bg-gradient-indigo-teal{--bslib-color-fg: #fff;--bslib-color-bg: #4a5ace;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #4a5ace;color:#fff}.bg-gradient-indigo-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #7a2bdc;background:linear-gradient(var(--bg-gradient-deg, 140deg), #6610f2 var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #7a2bdc;color:#fff}.bg-gradient-purple-blue{--bslib-color-fg: #fff;--bslib-color-bg: #4a58a5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #4a58a5;color:#fff}.bg-gradient-purple-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #632bab;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #632bab;color:#fff}.bg-gradient-purple-pink{--bslib-color-fg: #fff;--bslib-color-bg: #973d82;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #973d82;color:#fff}.bg-gradient-purple-red{--bslib-color-fg: #fff;--bslib-color-bg: #a02561;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #a02561;color:#fff}.bg-gradient-purple-orange{--bslib-color-fg: #fff;--bslib-color-bg: #9a6a6a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #9a6a6a;color:#fff}.bg-gradient-purple-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #a05354;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #a05354;color:#fff}.bg-gradient-purple-green{--bslib-color-fg: #fff;--bslib-color-bg: #536d54;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #536d54;color:#fff}.bg-gradient-purple-teal{--bslib-color-fg: #fff;--bslib-color-bg: #477587;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #477587;color:#fff}.bg-gradient-purple-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #774695;background:linear-gradient(var(--bg-gradient-deg, 140deg), #613d7c var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #774695;color:#fff}.bg-gradient-pink-blue{--bslib-color-fg: #fff;--bslib-color-bg: #9b58af;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #9b58af;color:#fff}.bg-gradient-pink-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b42cb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b42cb5;color:#fff}.bg-gradient-pink-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b23e86;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #b23e86;color:#fff}.bg-gradient-pink-red{--bslib-color-fg: #fff;--bslib-color-bg: #f1256b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #f1256b;color:#fff}.bg-gradient-pink-orange{--bslib-color-fg: #fff;--bslib-color-bg: #eb6a73;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #eb6a73;color:#fff}.bg-gradient-pink-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #f1545e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #f1545e;color:#fff}.bg-gradient-pink-green{--bslib-color-fg: #fff;--bslib-color-bg: #a46e5e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #a46e5e;color:#fff}.bg-gradient-pink-teal{--bslib-color-fg: #fff;--bslib-color-bg: #987690;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #987690;color:#fff}.bg-gradient-pink-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #c8479f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #e83e8c var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #c8479f;color:#fff}.bg-gradient-red-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a9337d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #a9337d;color:#fff}.bg-gradient-red-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #c20683;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c20683;color:#fff}.bg-gradient-red-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c01854;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #c01854;color:#fff}.bg-gradient-red-pink{--bslib-color-fg: #fff;--bslib-color-bg: #f6195a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #f6195a;color:#fff}.bg-gradient-red-orange{--bslib-color-fg: #fff;--bslib-color-bg: #f94541;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #f94541;color:#fff}.bg-gradient-red-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #ff2f2c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #ff2f2c;color:#fff}.bg-gradient-red-green{--bslib-color-fg: #fff;--bslib-color-bg: #b2492c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #b2492c;color:#fff}.bg-gradient-red-teal{--bslib-color-fg: #fff;--bslib-color-bg: #a6505f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a6505f;color:#fff}.bg-gradient-red-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #d6226d;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff0039 var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #d6226d;color:#fff}.bg-gradient-orange-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a09b8a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #a09b8a;color:#fff}.bg-gradient-orange-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #b96e90;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #b96e90;color:#fff}.bg-gradient-orange-purple{--bslib-color-fg: #fff;--bslib-color-bg: #b78060;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #b78060;color:#fff}.bg-gradient-orange-pink{--bslib-color-fg: #fff;--bslib-color-bg: #ed8167;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #ed8167;color:#fff}.bg-gradient-orange-red{--bslib-color-fg: #fff;--bslib-color-bg: #f66846;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #f66846;color:#fff}.bg-gradient-orange-yellow{--bslib-color-fg: #000;--bslib-color-bg: #f69738;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #f69738;color:#000}.bg-gradient-orange-green{--bslib-color-fg: #000;--bslib-color-bg: #a9b138;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #a9b138;color:#000}.bg-gradient-orange-teal{--bslib-color-fg: #000;--bslib-color-bg: #9db86b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #9db86b;color:#000}.bg-gradient-orange-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #cd897a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #f0ad4e var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #cd897a;color:#fff}.bg-gradient-yellow-blue{--bslib-color-fg: #fff;--bslib-color-bg: #a97969;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #a97969;color:#fff}.bg-gradient-yellow-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #c24d6f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #c24d6f;color:#fff}.bg-gradient-yellow-purple{--bslib-color-fg: #fff;--bslib-color-bg: #c05f40;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #c05f40;color:#fff}.bg-gradient-yellow-pink{--bslib-color-fg: #fff;--bslib-color-bg: #f65f46;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #f65f46;color:#fff}.bg-gradient-yellow-red{--bslib-color-fg: #fff;--bslib-color-bg: #ff4625;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #ff4625;color:#fff}.bg-gradient-yellow-orange{--bslib-color-fg: #000;--bslib-color-bg: #f98b2e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #f98b2e;color:#000}.bg-gradient-yellow-green{--bslib-color-fg: #fff;--bslib-color-bg: #b28f18;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #b28f18;color:#fff}.bg-gradient-yellow-teal{--bslib-color-fg: #fff;--bslib-color-bg: #a6974b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #a6974b;color:#fff}.bg-gradient-yellow-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #d66859;background:linear-gradient(var(--bg-gradient-deg, 140deg), #ff7518 var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #d66859;color:#fff}.bg-gradient-green-blue{--bslib-color-fg: #fff;--bslib-color-bg: #35a069;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #35a069;color:#fff}.bg-gradient-green-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #4f746f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #4f746f;color:#fff}.bg-gradient-green-purple{--bslib-color-fg: #fff;--bslib-color-bg: #4d8640;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #4d8640;color:#fff}.bg-gradient-green-pink{--bslib-color-fg: #fff;--bslib-color-bg: #838646;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #838646;color:#fff}.bg-gradient-green-red{--bslib-color-fg: #fff;--bslib-color-bg: #8c6d25;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #8c6d25;color:#fff}.bg-gradient-green-orange{--bslib-color-fg: #000;--bslib-color-bg: #86b22e;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #86b22e;color:#000}.bg-gradient-green-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #8c9c18;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #8c9c18;color:#fff}.bg-gradient-green-teal{--bslib-color-fg: #000;--bslib-color-bg: #33be4b;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #33be4b;color:#000}.bg-gradient-green-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #638f59;background:linear-gradient(var(--bg-gradient-deg, 140deg), #3fb618 var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #638f59;color:#fff}.bg-gradient-teal-blue{--bslib-color-fg: #fff;--bslib-color-bg: #23acb5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #23acb5;color:#fff}.bg-gradient-teal-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #3c7fbb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #3c7fbb;color:#fff}.bg-gradient-teal-purple{--bslib-color-fg: #fff;--bslib-color-bg: #3a918c;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #3a918c;color:#fff}.bg-gradient-teal-pink{--bslib-color-fg: #fff;--bslib-color-bg: #709193;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #709193;color:#fff}.bg-gradient-teal-red{--bslib-color-fg: #fff;--bslib-color-bg: #797971;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #797971;color:#fff}.bg-gradient-teal-orange{--bslib-color-fg: #000;--bslib-color-bg: #73be7a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #73be7a;color:#000}.bg-gradient-teal-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #79a764;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #79a764;color:#fff}.bg-gradient-teal-green{--bslib-color-fg: #000;--bslib-color-bg: #2cc164;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #2cc164;color:#000}.bg-gradient-teal-cyan{--bslib-color-fg: #fff;--bslib-color-bg: #509aa5;background:linear-gradient(var(--bg-gradient-deg, 140deg), #20c997 var(--bg-gradient-start, 36%), #9954bb var(--bg-gradient-end, 180%)) #509aa5;color:#fff}.bg-gradient-cyan-blue{--bslib-color-fg: #fff;--bslib-color-bg: #6b66cb;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #2780e3 var(--bg-gradient-end, 180%)) #6b66cb;color:#fff}.bg-gradient-cyan-indigo{--bslib-color-fg: #fff;--bslib-color-bg: #8539d1;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #6610f2 var(--bg-gradient-end, 180%)) #8539d1;color:#fff}.bg-gradient-cyan-purple{--bslib-color-fg: #fff;--bslib-color-bg: #834ba2;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #613d7c var(--bg-gradient-end, 180%)) #834ba2;color:#fff}.bg-gradient-cyan-pink{--bslib-color-fg: #fff;--bslib-color-bg: #b94ba8;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #e83e8c var(--bg-gradient-end, 180%)) #b94ba8;color:#fff}.bg-gradient-cyan-red{--bslib-color-fg: #fff;--bslib-color-bg: #c23287;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #ff0039 var(--bg-gradient-end, 180%)) #c23287;color:#fff}.bg-gradient-cyan-orange{--bslib-color-fg: #fff;--bslib-color-bg: #bc788f;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #f0ad4e var(--bg-gradient-end, 180%)) #bc788f;color:#fff}.bg-gradient-cyan-yellow{--bslib-color-fg: #fff;--bslib-color-bg: #c2617a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #ff7518 var(--bg-gradient-end, 180%)) #c2617a;color:#fff}.bg-gradient-cyan-green{--bslib-color-fg: #fff;--bslib-color-bg: #757b7a;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #3fb618 var(--bg-gradient-end, 180%)) #757b7a;color:#fff}.bg-gradient-cyan-teal{--bslib-color-fg: #fff;--bslib-color-bg: #6983ad;background:linear-gradient(var(--bg-gradient-deg, 140deg), #9954bb var(--bg-gradient-start, 36%), #20c997 var(--bg-gradient-end, 180%)) #6983ad;color:#fff}:root{--bslib-spacer: 1rem;--bslib-mb-spacer: var(--bslib-spacer, 1rem)}.bslib-mb-spacing{margin-bottom:var(--bslib-mb-spacer)}.bslib-gap-spacing{gap:var(--bslib-mb-spacer)}.bslib-gap-spacing>.bslib-mb-spacing,.bslib-gap-spacing>.form-group,.bslib-gap-spacing>p,.bslib-gap-spacing>pre{margin-bottom:0}.html-fill-container>.html-fill-item.bslib-mb-spacing{margin-bottom:0}@media(min-width: 576px){.nav:not(.nav-hidden){display:flex !important;display:-webkit-flex !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column){float:none !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.bslib-nav-spacer{margin-left:auto !important}.nav:not(.nav-hidden):not(.nav-stacked):not(.flex-column)>.form-inline{margin-top:auto;margin-bottom:auto}.nav:not(.nav-hidden).nav-stacked{flex-direction:column;-webkit-flex-direction:column;height:100%}.nav:not(.nav-hidden).nav-stacked>.bslib-nav-spacer{margin-top:auto !important}}.accordion .accordion-header{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:400;line-height:1.2;color:var(--bs-heading-color);margin-bottom:0}@media(min-width: 1200px){.accordion .accordion-header{font-size:1.65rem}}.accordion .accordion-icon:not(:empty){margin-right:.75rem;display:flex}.accordion .accordion-button:not(.collapsed){box-shadow:none}.accordion .accordion-button:not(.collapsed):focus{box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.bslib-sidebar-layout{--bslib-sidebar-transition-duration: 500ms;--bslib-sidebar-transition-easing-x: cubic-bezier(0.8, 0.78, 0.22, 1.07);--bslib-sidebar-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, rgba(0, 0, 0, 0.175));--bslib-sidebar-border-radius: var(--bs-border-radius);--bslib-sidebar-vert-border: var(--bs-card-border-width, 1px) solid var(--bs-card-border-color, rgba(0, 0, 0, 0.175));--bslib-sidebar-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.05);--bslib-sidebar-fg: var(--bs-emphasis-color, black);--bslib-sidebar-main-fg: var(--bs-card-color, var(--bs-body-color));--bslib-sidebar-main-bg: var(--bs-card-bg, var(--bs-body-bg));--bslib-sidebar-toggle-bg: rgba(var(--bs-emphasis-color-rgb, 0, 0, 0), 0.1);--bslib-sidebar-padding: calc(var(--bslib-spacer) * 1.5);--bslib-sidebar-icon-size: var(--bslib-spacer, 1rem);--bslib-sidebar-icon-button-size: calc(var(--bslib-sidebar-icon-size, 1rem) * 2);--bslib-sidebar-padding-icon: calc(var(--bslib-sidebar-icon-button-size, 2rem) * 1.5);--bslib-collapse-toggle-border-radius: var(--bs-border-radius, 0.25rem);--bslib-collapse-toggle-transform: 0deg;--bslib-sidebar-toggle-transition-easing: cubic-bezier(1, 0, 0, 1);--bslib-collapse-toggle-right-transform: 180deg;--bslib-sidebar-column-main: minmax(0, 1fr);display:grid !important;grid-template-columns:min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px)) var(--bslib-sidebar-column-main);position:relative;transition:grid-template-columns ease-in-out var(--bslib-sidebar-transition-duration);border:var(--bslib-sidebar-border);border-radius:var(--bslib-sidebar-border-radius)}@media(prefers-reduced-motion: reduce){.bslib-sidebar-layout{transition:none}}.bslib-sidebar-layout[data-bslib-sidebar-border=false]{border:none}.bslib-sidebar-layout[data-bslib-sidebar-border-radius=false]{border-radius:initial}.bslib-sidebar-layout>.main,.bslib-sidebar-layout>.sidebar{grid-row:1/2;border-radius:inherit;overflow:auto}.bslib-sidebar-layout>.main{grid-column:2/3;border-top-left-radius:0;border-bottom-left-radius:0;padding:var(--bslib-sidebar-padding);transition:padding var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration);color:var(--bslib-sidebar-main-fg);background-color:var(--bslib-sidebar-main-bg)}.bslib-sidebar-layout>.sidebar{grid-column:1/2;width:100%;height:100%;border-right:var(--bslib-sidebar-vert-border);border-top-right-radius:0;border-bottom-right-radius:0;color:var(--bslib-sidebar-fg);background-color:var(--bslib-sidebar-bg);backdrop-filter:blur(5px)}.bslib-sidebar-layout>.sidebar>.sidebar-content{display:flex;flex-direction:column;gap:var(--bslib-spacer, 1rem);padding:var(--bslib-sidebar-padding);padding-top:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout>.sidebar>.sidebar-content>:last-child:not(.sidebar-title){margin-bottom:0}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion{margin-left:calc(-1*var(--bslib-sidebar-padding));margin-right:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:last-child{margin-bottom:calc(-1*var(--bslib-sidebar-padding))}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child){margin-bottom:1rem}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion .accordion-body{display:flex;flex-direction:column}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:first-child) .accordion-item:first-child{border-top:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content>.accordion:not(:last-child) .accordion-item:last-child{border-bottom:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.bslib-sidebar-layout>.sidebar>.sidebar-content.has-accordion>.sidebar-title{border-bottom:none;padding-bottom:0}.bslib-sidebar-layout>.sidebar .shiny-input-container{width:100%}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar>.sidebar-content{padding-top:var(--bslib-sidebar-padding)}.bslib-sidebar-layout>.collapse-toggle{grid-row:1/2;grid-column:1/2;display:inline-flex;align-items:center;position:absolute;right:calc(var(--bslib-sidebar-icon-size));top:calc(var(--bslib-sidebar-icon-size, 1rem)/2);border:none;border-radius:var(--bslib-collapse-toggle-border-radius);height:var(--bslib-sidebar-icon-button-size, 2rem);width:var(--bslib-sidebar-icon-button-size, 2rem);display:flex;align-items:center;justify-content:center;padding:0;color:var(--bslib-sidebar-fg);background-color:unset;transition:color var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),top var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),right var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration),left var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover{background-color:var(--bslib-sidebar-toggle-bg)}.bslib-sidebar-layout>.collapse-toggle>.collapse-icon{opacity:.8;width:var(--bslib-sidebar-icon-size);height:var(--bslib-sidebar-icon-size);transform:rotateY(var(--bslib-collapse-toggle-transform));transition:transform var(--bslib-sidebar-toggle-transition-easing) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout>.collapse-toggle:hover>.collapse-icon{opacity:1}.bslib-sidebar-layout .sidebar-title{font-size:1.25rem;line-height:1.25;margin-top:0;margin-bottom:1rem;padding-bottom:1rem;border-bottom:var(--bslib-sidebar-border)}.bslib-sidebar-layout.sidebar-right{grid-template-columns:var(--bslib-sidebar-column-main) min(100% - var(--bslib-sidebar-icon-size),var(--bslib-sidebar-width, 250px))}.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/2;border-top-right-radius:0;border-bottom-right-radius:0;border-top-left-radius:inherit;border-bottom-left-radius:inherit}.bslib-sidebar-layout.sidebar-right>.sidebar{grid-column:2/3;border-right:none;border-left:var(--bslib-sidebar-vert-border);border-top-left-radius:0;border-bottom-left-radius:0}.bslib-sidebar-layout.sidebar-right>.collapse-toggle{grid-column:2/3;left:var(--bslib-sidebar-icon-size);right:unset;border:var(--bslib-collapse-toggle-border)}.bslib-sidebar-layout.sidebar-right>.collapse-toggle>.collapse-icon{transform:rotateY(var(--bslib-collapse-toggle-right-transform))}.bslib-sidebar-layout.sidebar-collapsed{--bslib-collapse-toggle-transform: 180deg;--bslib-collapse-toggle-right-transform: 0deg;--bslib-sidebar-vert-border: none;grid-template-columns:0 minmax(0, 1fr)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right{grid-template-columns:minmax(0, 1fr) 0}.bslib-sidebar-layout.sidebar-collapsed:not(.transitioning)>.sidebar>*{display:none}.bslib-sidebar-layout.sidebar-collapsed>.main{border-radius:inherit}.bslib-sidebar-layout.sidebar-collapsed:not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout.sidebar-collapsed>.collapse-toggle{color:var(--bslib-sidebar-main-fg);top:calc(var(--bslib-sidebar-overlap-counter, 0)*(var(--bslib-sidebar-icon-size) + var(--bslib-sidebar-padding)) + var(--bslib-sidebar-icon-size, 1rem)/2);right:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px))}.bslib-sidebar-layout.sidebar-collapsed.sidebar-right>.collapse-toggle{left:calc(-2.5*var(--bslib-sidebar-icon-size) - var(--bs-card-border-width, 1px));right:unset}@media(min-width: 576px){.bslib-sidebar-layout.transitioning>.sidebar>.sidebar-content{display:none}}@media(max-width: 575.98px){.bslib-sidebar-layout[data-bslib-sidebar-open=desktop]{--bslib-sidebar-js-init-collapsed: true}.bslib-sidebar-layout>.sidebar,.bslib-sidebar-layout.sidebar-right>.sidebar{border:none}.bslib-sidebar-layout>.main,.bslib-sidebar-layout.sidebar-right>.main{grid-column:1/3}.bslib-sidebar-layout[data-bslib-sidebar-open=always]{display:block !important}.bslib-sidebar-layout[data-bslib-sidebar-open=always]>.sidebar{max-height:var(--bslib-sidebar-max-height-mobile);overflow-y:auto;border-top:var(--bslib-sidebar-vert-border)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]){grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.sidebar{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-collapsed)>.collapse-toggle{z-index:1}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed{grid-template-columns:0 100%}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed.sidebar-right{grid-template-columns:100% 0}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]):not(.sidebar-right)>.main{padding-left:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-right>.main{padding-right:var(--bslib-sidebar-padding-icon)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always])>.main{opacity:0;transition:opacity var(--bslib-sidebar-transition-easing-x) var(--bslib-sidebar-transition-duration)}.bslib-sidebar-layout:not([data-bslib-sidebar-open=always]).sidebar-collapsed>.main{opacity:1}}:root{--bslib-page-sidebar-title-bg: #2780e3;--bslib-page-sidebar-title-color: #fff}.bslib-page-title{background-color:var(--bslib-page-sidebar-title-bg);color:var(--bslib-page-sidebar-title-color);font-size:1.25rem;font-weight:300;padding:var(--bslib-spacer, 1rem);padding-left:1.5rem;margin-bottom:0;border-bottom:1px solid #dee2e6}html{height:100%}.bslib-page-fill{width:100%;height:100%;margin:0;padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}@media(max-width: 575.98px){.bslib-page-fill{height:var(--bslib-page-fill-mobile-height, auto)}}:root{--bslib-value-box-shadow: none;--bslib-value-box-border-width-auto-yes: var(--bslib-value-box-border-width-baseline);--bslib-value-box-border-width-auto-no: 0;--bslib-value-box-border-width-baseline: 1px}.bslib-value-box{border-width:var(--bslib-value-box-border-width-auto-no, var(--bslib-value-box-border-width-baseline));container-name:bslib-value-box;container-type:inline-size}.bslib-value-box.card{box-shadow:var(--bslib-value-box-shadow)}.bslib-value-box.border-auto{border-width:var(--bslib-value-box-border-width-auto-yes, var(--bslib-value-box-border-width-baseline))}.bslib-value-box.default{--bslib-value-box-bg-default: var(--bs-card-bg, #fff);--bslib-value-box-border-color-default: var(--bs-card-border-color, rgba(0, 0, 0, 0.175));color:var(--bslib-value-box-color);background-color:var(--bslib-value-box-bg, var(--bslib-value-box-bg-default));border-color:var(--bslib-value-box-border-color, var(--bslib-value-box-border-color-default))}.bslib-value-box .value-box-grid{display:grid;grid-template-areas:"left right";align-items:center;overflow:hidden}.bslib-value-box .value-box-showcase{height:100%;max-height:var(---bslib-value-box-showcase-max-h, 100%)}.bslib-value-box .value-box-showcase,.bslib-value-box .value-box-showcase>.html-fill-item{width:100%}.bslib-value-box[data-full-screen=true] .value-box-showcase{max-height:var(---bslib-value-box-showcase-max-h-fs, 100%)}@media screen and (min-width: 575.98px){@container bslib-value-box (max-width: 300px){.bslib-value-box:not(.showcase-bottom) .value-box-grid{grid-template-columns:1fr !important;grid-template-rows:auto auto;grid-template-areas:"top" "bottom"}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-showcase{grid-area:top !important}.bslib-value-box:not(.showcase-bottom) .value-box-grid .value-box-area{grid-area:bottom !important;justify-content:end}}}.bslib-value-box .value-box-area{justify-content:center;padding:1.5rem 1rem;font-size:.9rem;font-weight:500}.bslib-value-box .value-box-area *{margin-bottom:0;margin-top:0}.bslib-value-box .value-box-title{font-size:1rem;margin-top:0;margin-bottom:.5rem;font-weight:400;line-height:1.2}.bslib-value-box .value-box-title:empty::after{content:" "}.bslib-value-box .value-box-value{font-size:calc(1.29rem + 0.48vw);margin-top:0;margin-bottom:.5rem;font-weight:400;line-height:1.2}@media(min-width: 1200px){.bslib-value-box .value-box-value{font-size:1.65rem}}.bslib-value-box .value-box-value:empty::after{content:" "}.bslib-value-box .value-box-showcase{align-items:center;justify-content:center;margin-top:auto;margin-bottom:auto;padding:1rem}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{opacity:.85;min-width:50px;max-width:125%}.bslib-value-box .value-box-showcase .bi,.bslib-value-box .value-box-showcase .fa,.bslib-value-box .value-box-showcase .fab,.bslib-value-box .value-box-showcase .fas,.bslib-value-box .value-box-showcase .far{font-size:4rem}.bslib-value-box.showcase-top-right .value-box-grid{grid-template-columns:1fr var(---bslib-value-box-showcase-w, 50%)}.bslib-value-box.showcase-top-right .value-box-grid .value-box-showcase{grid-area:right;margin-left:auto;align-self:start;align-items:end;padding-left:0;padding-bottom:0}.bslib-value-box.showcase-top-right .value-box-grid .value-box-area{grid-area:left;align-self:end}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid{grid-template-columns:auto var(---bslib-value-box-showcase-w-fs, 1fr)}.bslib-value-box.showcase-top-right[data-full-screen=true] .value-box-grid>div{align-self:center}.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-showcase{margin-top:0}@container bslib-value-box (max-width: 300px){.bslib-value-box.showcase-top-right:not([data-full-screen=true]) .value-box-grid .value-box-showcase{padding-left:1rem}}.bslib-value-box.showcase-left-center .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w, 30%) auto}.bslib-value-box.showcase-left-center[data-full-screen=true] .value-box-grid{grid-template-columns:var(---bslib-value-box-showcase-w-fs, 1fr) auto}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-showcase{grid-area:left}.bslib-value-box.showcase-left-center:not([data-fill-screen=true]) .value-box-grid .value-box-area{grid-area:right}.bslib-value-box.showcase-bottom .value-box-grid{grid-template-columns:1fr;grid-template-rows:1fr var(---bslib-value-box-showcase-h, auto);grid-template-areas:"top" "bottom";overflow:hidden}.bslib-value-box.showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.bslib-value-box.showcase-bottom .value-box-grid .value-box-area{grid-area:top}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid{grid-template-rows:1fr var(---bslib-value-box-showcase-h-fs, 2fr)}.bslib-value-box.showcase-bottom[data-full-screen=true] .value-box-grid .value-box-showcase{padding:1rem}[data-bs-theme=dark] .bslib-value-box{--bslib-value-box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 50%)}.bslib-card{overflow:auto}.bslib-card .card-body+.card-body{padding-top:0}.bslib-card .card-body{overflow:auto}.bslib-card .card-body p{margin-top:0}.bslib-card .card-body p:last-child{margin-bottom:0}.bslib-card .card-body{max-height:var(--bslib-card-body-max-height, none)}.bslib-card[data-full-screen=true]>.card-body{max-height:var(--bslib-card-body-max-height-full-screen, none)}.bslib-card .card-header .form-group{margin-bottom:0}.bslib-card .card-header .selectize-control{margin-bottom:0}.bslib-card .card-header .selectize-control .item{margin-right:1.15rem}.bslib-card .card-footer{margin-top:auto}.bslib-card .bslib-navs-card-title{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center}.bslib-card .bslib-navs-card-title .nav{margin-left:auto}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border=true]){border:none}.bslib-card .bslib-sidebar-layout:not([data-bslib-sidebar-border-radius=true]){border-top-left-radius:0;border-top-right-radius:0}[data-full-screen=true]{position:fixed;inset:3.5rem 1rem 1rem;height:auto !important;max-height:none !important;width:auto !important;z-index:1070}.bslib-full-screen-enter{display:none;position:absolute;bottom:var(--bslib-full-screen-enter-bottom, 0.2rem);right:var(--bslib-full-screen-enter-right, 0);top:var(--bslib-full-screen-enter-top);left:var(--bslib-full-screen-enter-left);color:var(--bslib-color-fg, var(--bs-card-color));background-color:var(--bslib-color-bg, var(--bs-card-bg, var(--bs-body-bg)));border:var(--bs-card-border-width) solid var(--bslib-color-fg, var(--bs-card-border-color));box-shadow:0 2px 4px rgba(0,0,0,.15);margin:.2rem .4rem;padding:.55rem !important;font-size:.8rem;cursor:pointer;opacity:.7;z-index:1070}.bslib-full-screen-enter:hover{opacity:1}.card[data-full-screen=false]:hover>*>.bslib-full-screen-enter{display:block}.bslib-has-full-screen .card:hover>*>.bslib-full-screen-enter{display:none}@media(max-width: 575.98px){.bslib-full-screen-enter{display:none !important}}.bslib-full-screen-exit{position:relative;top:1.35rem;font-size:.9rem;cursor:pointer;text-decoration:none;display:flex;float:right;margin-right:2.15rem;align-items:center;color:rgba(var(--bs-body-bg-rgb), 0.8)}.bslib-full-screen-exit:hover{color:rgba(var(--bs-body-bg-rgb), 1)}.bslib-full-screen-exit svg{margin-left:.5rem;font-size:1.5rem}#bslib-full-screen-overlay{position:fixed;inset:0;background-color:rgba(var(--bs-body-color-rgb), 0.6);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:1069;animation:bslib-full-screen-overlay-enter 400ms cubic-bezier(0.6, 0.02, 0.65, 1) forwards}@keyframes bslib-full-screen-overlay-enter{0%{opacity:0}100%{opacity:1}}.navbar+.container-fluid:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-sm:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-md:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-lg:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xl:has(>.tab-content>.tab-pane.active.html-fill-container),.navbar+.container-xxl:has(>.tab-content>.tab-pane.active.html-fill-container){padding-left:0;padding-right:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container,.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container{padding:var(--bslib-spacer, 1rem);gap:var(--bslib-spacer, 1rem)}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container:has(>.bslib-sidebar-layout:only-child){padding:0}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border=true]){border-left:none;border-right:none;border-bottom:none}.navbar+.container-fluid>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-sm>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-md>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-lg>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]),.navbar+.container-xxl>.tab-content>.tab-pane.active.html-fill-container>.bslib-sidebar-layout:only-child:not([data-bslib-sidebar-border-radius=true]){border-radius:0}.navbar+div>.bslib-sidebar-layout{border-top:var(--bslib-sidebar-border)}.bslib-grid{display:grid !important;gap:var(--bslib-spacer, 1rem);height:var(--bslib-grid-height)}.bslib-grid.grid{grid-template-columns:repeat(var(--bs-columns, 12), minmax(0, 1fr));grid-template-rows:unset;grid-auto-rows:var(--bslib-grid--row-heights);--bslib-grid--row-heights--xs: unset;--bslib-grid--row-heights--sm: unset;--bslib-grid--row-heights--md: unset;--bslib-grid--row-heights--lg: unset;--bslib-grid--row-heights--xl: unset;--bslib-grid--row-heights--xxl: unset}.bslib-grid.grid.bslib-grid--row-heights--xs{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xs)}@media(min-width: 576px){.bslib-grid.grid.bslib-grid--row-heights--sm{--bslib-grid--row-heights: var(--bslib-grid--row-heights--sm)}}@media(min-width: 768px){.bslib-grid.grid.bslib-grid--row-heights--md{--bslib-grid--row-heights: var(--bslib-grid--row-heights--md)}}@media(min-width: 992px){.bslib-grid.grid.bslib-grid--row-heights--lg{--bslib-grid--row-heights: var(--bslib-grid--row-heights--lg)}}@media(min-width: 1200px){.bslib-grid.grid.bslib-grid--row-heights--xl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xl)}}@media(min-width: 1400px){.bslib-grid.grid.bslib-grid--row-heights--xxl{--bslib-grid--row-heights: var(--bslib-grid--row-heights--xxl)}}.bslib-grid>*>.shiny-input-container{width:100%}.bslib-grid-item{grid-column:auto/span 1}@media(max-width: 767.98px){.bslib-grid-item{grid-column:1/-1}}@media(max-width: 575.98px){.bslib-grid{grid-template-columns:1fr !important;height:var(--bslib-grid-height-mobile)}.bslib-grid.grid{height:unset !important;grid-auto-rows:var(--bslib-grid--row-heights--xs, auto)}}.html-fill-container{display:flex;flex-direction:column;min-height:0;min-width:0}.html-fill-container>.html-fill-item{flex:1 1 auto;min-height:0;min-width:0}.html-fill-container>:not(.html-fill-item){flex:0 0 auto}.quarto-container{min-height:calc(100vh - 132px)}body.hypothesis-enabled #quarto-header{margin-right:16px}footer.footer .nav-footer,#quarto-header>nav{padding-left:1em;padding-right:1em}footer.footer div.nav-footer p:first-child{margin-top:0}footer.footer div.nav-footer p:last-child{margin-bottom:0}#quarto-content>*{padding-top:14px}#quarto-content>#quarto-sidebar-glass{padding-top:0px}@media(max-width: 991.98px){#quarto-content>*{padding-top:0}#quarto-content .subtitle{padding-top:14px}#quarto-content section:first-of-type h2:first-of-type,#quarto-content section:first-of-type .h2:first-of-type{margin-top:1rem}}.headroom-target,header.headroom{will-change:transform;transition:position 200ms linear;transition:all 200ms linear}header.headroom--pinned{transform:translateY(0%)}header.headroom--unpinned{transform:translateY(-100%)}.navbar-container{width:100%}.navbar-brand{overflow:hidden;text-overflow:ellipsis}.navbar-brand-container{max-width:calc(100% - 115px);min-width:0;display:flex;align-items:center}@media(min-width: 992px){.navbar-brand-container{margin-right:1em}}.navbar-brand.navbar-brand-logo{margin-right:4px;display:inline-flex}.navbar-toggler{flex-basis:content;flex-shrink:0}.navbar .navbar-brand-container{order:2}.navbar .navbar-toggler{order:1}.navbar .navbar-container>.navbar-nav{order:20}.navbar .navbar-container>.navbar-brand-container{margin-left:0 !important;margin-right:0 !important}.navbar .navbar-collapse{order:20}.navbar #quarto-search{order:4;margin-left:auto}.navbar .navbar-toggler{margin-right:.5em}.navbar-logo{max-height:24px;width:auto;padding-right:4px}nav .nav-item:not(.compact){padding-top:1px}nav .nav-link i,nav .dropdown-item i{padding-right:1px}.navbar-expand-lg .navbar-nav .nav-link{padding-left:.6rem;padding-right:.6rem}nav .nav-item.compact .nav-link{padding-left:.5rem;padding-right:.5rem;font-size:1.1rem}.navbar .quarto-navbar-tools{order:3}.navbar .quarto-navbar-tools div.dropdown{display:inline-block}.navbar .quarto-navbar-tools .quarto-navigation-tool{color:#fdfeff}.navbar .quarto-navbar-tools .quarto-navigation-tool:hover{color:#fdfdff}.navbar-nav .dropdown-menu{min-width:220px;font-size:.9rem}.navbar .navbar-nav .nav-link.dropdown-toggle::after{opacity:.75;vertical-align:.175em}.navbar ul.dropdown-menu{padding-top:0;padding-bottom:0}.navbar .dropdown-header{text-transform:uppercase;font-size:.8rem;padding:0 .5rem}.navbar .dropdown-item{padding:.4rem .5rem}.navbar .dropdown-item>i.bi{margin-left:.1rem;margin-right:.25em}.sidebar #quarto-search{margin-top:-1px}.sidebar #quarto-search svg.aa-SubmitIcon{width:16px;height:16px}.sidebar-navigation a{color:inherit}.sidebar-title{margin-top:.25rem;padding-bottom:.5rem;font-size:1.3rem;line-height:1.6rem;visibility:visible}.sidebar-title>a{font-size:inherit;text-decoration:none}.sidebar-title .sidebar-tools-main{margin-top:-6px}@media(max-width: 991.98px){#quarto-sidebar div.sidebar-header{padding-top:.2em}}.sidebar-header-stacked .sidebar-title{margin-top:.6rem}.sidebar-logo{max-width:90%;padding-bottom:.5rem}.sidebar-logo-link{text-decoration:none}.sidebar-navigation li a{text-decoration:none}.sidebar-navigation .quarto-navigation-tool{opacity:.7;font-size:.875rem}#quarto-sidebar>nav>.sidebar-tools-main{margin-left:14px}.sidebar-tools-main{display:inline-flex;margin-left:0px;order:2}.sidebar-tools-main:not(.tools-wide){vertical-align:middle}.sidebar-navigation .quarto-navigation-tool.dropdown-toggle::after{display:none}.sidebar.sidebar-navigation>*{padding-top:1em}.sidebar-item{margin-bottom:.2em;line-height:1rem;margin-top:.4rem}.sidebar-section{padding-left:.5em;padding-bottom:.2em}.sidebar-item .sidebar-item-container{display:flex;justify-content:space-between;cursor:pointer}.sidebar-item-toggle:hover{cursor:pointer}.sidebar-item .sidebar-item-toggle .bi{font-size:.7rem;text-align:center}.sidebar-item .sidebar-item-toggle .bi-chevron-right::before{transition:transform 200ms ease}.sidebar-item .sidebar-item-toggle[aria-expanded=false] .bi-chevron-right::before{transform:none}.sidebar-item .sidebar-item-toggle[aria-expanded=true] .bi-chevron-right::before{transform:rotate(90deg)}.sidebar-item-text{width:100%}.sidebar-navigation .sidebar-divider{margin-left:0;margin-right:0;margin-top:.5rem;margin-bottom:.5rem}@media(max-width: 991.98px){.quarto-secondary-nav{display:block}.quarto-secondary-nav button.quarto-search-button{padding-right:0em;padding-left:2em}.quarto-secondary-nav button.quarto-btn-toggle{margin-left:-0.75rem;margin-right:.15rem}.quarto-secondary-nav nav.quarto-title-breadcrumbs{display:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs{display:flex;align-items:center;padding-right:1em;margin-left:-0.25em}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{text-decoration:none}.quarto-secondary-nav nav.quarto-page-breadcrumbs ol.breadcrumb{margin-bottom:0}}@media(min-width: 992px){.quarto-secondary-nav{display:none}}.quarto-title-breadcrumbs .breadcrumb{margin-bottom:.5em;font-size:.9rem}.quarto-title-breadcrumbs .breadcrumb li:last-of-type a{color:#6c757d}.quarto-secondary-nav .quarto-btn-toggle{color:#595959}.quarto-secondary-nav[aria-expanded=false] .quarto-btn-toggle .bi-chevron-right::before{transform:none}.quarto-secondary-nav[aria-expanded=true] .quarto-btn-toggle .bi-chevron-right::before{transform:rotate(90deg)}.quarto-secondary-nav .quarto-btn-toggle .bi-chevron-right::before{transition:transform 200ms ease}.quarto-secondary-nav{cursor:pointer}.no-decor{text-decoration:none}.quarto-secondary-nav-title{margin-top:.3em;color:#595959;padding-top:4px}.quarto-secondary-nav nav.quarto-page-breadcrumbs{color:#595959}.quarto-secondary-nav nav.quarto-page-breadcrumbs a{color:#595959}.quarto-secondary-nav nav.quarto-page-breadcrumbs a:hover{color:rgba(33,81,191,.8)}.quarto-secondary-nav nav.quarto-page-breadcrumbs .breadcrumb-item::before{color:#8c8c8c}.breadcrumb-item{line-height:1.2rem}div.sidebar-item-container{color:#595959}div.sidebar-item-container:hover,div.sidebar-item-container:focus{color:rgba(33,81,191,.8)}div.sidebar-item-container.disabled{color:rgba(89,89,89,.75)}div.sidebar-item-container .active,div.sidebar-item-container .show>.nav-link,div.sidebar-item-container .sidebar-link>code{color:#2151bf}div.sidebar.sidebar-navigation.rollup.quarto-sidebar-toggle-contents,nav.sidebar.sidebar-navigation:not(.rollup){background-color:#fff}@media(max-width: 991.98px){.sidebar-navigation .sidebar-item a,.nav-page .nav-page-text,.sidebar-navigation{font-size:1rem}.sidebar-navigation ul.sidebar-section.depth1 .sidebar-section-item{font-size:1.1rem}.sidebar-logo{display:none}.sidebar.sidebar-navigation{position:static;border-bottom:1px solid #dee2e6}.sidebar.sidebar-navigation.collapsing{position:fixed;z-index:1000}.sidebar.sidebar-navigation.show{position:fixed;z-index:1000}.sidebar.sidebar-navigation{min-height:100%}nav.quarto-secondary-nav{background-color:#fff;border-bottom:1px solid #dee2e6}.quarto-banner nav.quarto-secondary-nav{background-color:#2780e3;color:#fdfeff;border-top:1px solid #dee2e6}.sidebar .sidebar-footer{visibility:visible;padding-top:1rem;position:inherit}.sidebar-tools-collapse{display:block}}#quarto-sidebar{transition:width .15s ease-in}#quarto-sidebar>*{padding-right:1em}@media(max-width: 991.98px){#quarto-sidebar .sidebar-menu-container{white-space:nowrap;min-width:225px}#quarto-sidebar.show{transition:width .15s ease-out}}@media(min-width: 992px){#quarto-sidebar{display:flex;flex-direction:column}.nav-page .nav-page-text,.sidebar-navigation .sidebar-section .sidebar-item{font-size:.875rem}.sidebar-navigation .sidebar-item{font-size:.925rem}.sidebar.sidebar-navigation{display:block;position:sticky}.sidebar-search{width:100%}.sidebar .sidebar-footer{visibility:visible}}@media(max-width: 991.98px){#quarto-sidebar-glass{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,0);transition:background-color .15s ease-in;z-index:-1}#quarto-sidebar-glass.collapsing{z-index:1000}#quarto-sidebar-glass.show{transition:background-color .15s ease-out;background-color:rgba(102,102,102,.4);z-index:1000}}.sidebar .sidebar-footer{padding:.5rem 1rem;align-self:flex-end;color:#6c757d;width:100%}.quarto-page-breadcrumbs .breadcrumb-item+.breadcrumb-item,.quarto-page-breadcrumbs .breadcrumb-item{padding-right:.33em;padding-left:0}.quarto-page-breadcrumbs .breadcrumb-item::before{padding-right:.33em}.quarto-sidebar-footer{font-size:.875em}.sidebar-section .bi-chevron-right{vertical-align:middle}.sidebar-section .bi-chevron-right::before{font-size:.9em}.notransition{-webkit-transition:none !important;-moz-transition:none !important;-o-transition:none !important;transition:none !important}.btn:focus:not(:focus-visible){box-shadow:none}.page-navigation{display:flex;justify-content:space-between}.nav-page{padding-bottom:.75em}.nav-page .bi{font-size:1.8rem;vertical-align:middle}.nav-page .nav-page-text{padding-left:.25em;padding-right:.25em}.nav-page a{color:#6c757d;text-decoration:none;display:flex;align-items:center}.nav-page a:hover{color:#1f4eb6}.nav-footer .toc-actions{padding-bottom:.5em;padding-top:.5em}.nav-footer .toc-actions a,.nav-footer .toc-actions a:hover{text-decoration:none}.nav-footer .toc-actions ul{display:flex;list-style:none}.nav-footer .toc-actions ul :first-child{margin-left:auto}.nav-footer .toc-actions ul :last-child{margin-right:auto}.nav-footer .toc-actions ul li{padding-right:1.5em}.nav-footer .toc-actions ul li i.bi{padding-right:.4em}.nav-footer .toc-actions ul li:last-of-type{padding-right:0}.nav-footer{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:baseline;text-align:center;padding-top:.5rem;padding-bottom:.5rem;background-color:#fff}body.nav-fixed{padding-top:64px}.nav-footer-contents{color:#6c757d;margin-top:.25rem}.nav-footer{min-height:3.5em;color:#757575}.nav-footer a{color:#757575}.nav-footer .nav-footer-left{font-size:.825em}.nav-footer .nav-footer-center{font-size:.825em}.nav-footer .nav-footer-right{font-size:.825em}.nav-footer-left .footer-items,.nav-footer-center .footer-items,.nav-footer-right .footer-items{display:inline-flex;padding-top:.3em;padding-bottom:.3em;margin-bottom:0em}.nav-footer-left .footer-items .nav-link,.nav-footer-center .footer-items .nav-link,.nav-footer-right .footer-items .nav-link{padding-left:.6em;padding-right:.6em}.nav-footer-left{flex:1 1 0px;text-align:left}.nav-footer-right{flex:1 1 0px;text-align:right}.nav-footer-center{flex:1 1 0px;min-height:3em;text-align:center}.nav-footer-center .footer-items{justify-content:center}@media(max-width: 767.98px){.nav-footer-center{margin-top:3em}}.navbar .quarto-reader-toggle.reader .quarto-reader-toggle-btn{background-color:#fdfeff;border-radius:3px}@media(max-width: 991.98px){.quarto-reader-toggle{display:none}}.quarto-reader-toggle.reader.quarto-navigation-tool .quarto-reader-toggle-btn{background-color:#595959;border-radius:3px}.quarto-reader-toggle .quarto-reader-toggle-btn{display:inline-flex;padding-left:.2em;padding-right:.2em;margin-left:-0.2em;margin-right:-0.2em;text-align:center}.navbar .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle:not(.reader) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-reader-toggle.reader .bi::before{background-image:url('data:image/svg+xml,')}#quarto-back-to-top{display:none;position:fixed;bottom:50px;background-color:#fff;border-radius:.25rem;box-shadow:0 .2rem .5rem #6c757d,0 0 .05rem #6c757d;color:#6c757d;text-decoration:none;font-size:.9em;text-align:center;left:50%;padding:.4rem .8rem;transform:translate(-50%, 0)}.aa-DetachedSearchButtonQuery{display:none}.aa-DetachedOverlay ul.aa-List,#quarto-search-results ul.aa-List{list-style:none;padding-left:0}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{background-color:#fff;position:absolute;z-index:2000}#quarto-search-results .aa-Panel{max-width:400px}#quarto-search input{font-size:.925rem}@media(min-width: 992px){.navbar #quarto-search{margin-left:.25rem;order:999}}.navbar.navbar-expand-sm #quarto-search,.navbar.navbar-expand-md #quarto-search{order:999}@media(min-width: 992px){.navbar .quarto-navbar-tools{order:900}}@media(min-width: 992px){.navbar .quarto-navbar-tools.tools-end{margin-left:auto !important}}@media(max-width: 991.98px){#quarto-sidebar .sidebar-search{display:none}}#quarto-sidebar .sidebar-search .aa-Autocomplete{width:100%}.navbar .aa-Autocomplete .aa-Form{width:180px}.navbar #quarto-search.type-overlay .aa-Autocomplete{width:40px}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form{background-color:inherit;border:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form:focus-within{box-shadow:none;outline:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper{display:none}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-InputWrapper:focus-within{display:inherit}.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-Label svg,.navbar #quarto-search.type-overlay .aa-Autocomplete .aa-Form .aa-LoadingIndicator svg{width:26px;height:26px;color:#fdfeff;opacity:1}.navbar #quarto-search.type-overlay .aa-Autocomplete svg.aa-SubmitIcon{width:26px;height:26px;color:#fdfeff;opacity:1}.aa-Autocomplete .aa-Form,.aa-DetachedFormContainer .aa-Form{align-items:center;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;color:#343a40;display:flex;line-height:1em;margin:0;position:relative;width:100%}.aa-Autocomplete .aa-Form:focus-within,.aa-DetachedFormContainer .aa-Form:focus-within{box-shadow:rgba(39,128,227,.6) 0 0 0 1px;outline:currentColor none medium}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;order:1}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{cursor:initial;flex-shrink:0;padding:0;text-align:left}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-Label svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator svg{color:#343a40;opacity:.5}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-SubmitButton{appearance:none;background:none;border:0;margin:0}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-Autocomplete .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperPrefix .aa-LoadingIndicator[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapper,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper{order:3;position:relative;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input{appearance:none;background:none;border:0;color:#343a40;font:inherit;height:calc(1.5em + .1rem + 2px);padding:0;width:100%}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::placeholder,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::placeholder{color:#343a40;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input:focus{border-color:none;box-shadow:none;outline:none}.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-Autocomplete .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-decoration,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-cancel-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-button,.aa-DetachedFormContainer .aa-Form .aa-InputWrapper .aa-Input::-webkit-search-results-decoration{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix{align-items:center;display:flex;order:4}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton{align-items:center;background:none;border:0;color:#343a40;opacity:.8;cursor:pointer;display:flex;margin:0;width:calc(1.5em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton:focus{color:#343a40;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton[hidden]{display:none}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-ClearButton svg{width:calc(1.5em + 0.75rem + calc(1px * 2))}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton{border:none;align-items:center;background:none;color:#343a40;opacity:.4;font-size:.7rem;cursor:pointer;display:none;margin:0;width:calc(1em + .1rem + 2px)}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:hover,.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton:focus{color:#343a40;opacity:.8}.aa-Autocomplete .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden],.aa-DetachedFormContainer .aa-Form .aa-InputWrapperSuffix .aa-CopyButton[hidden]{display:none}.aa-PanelLayout:empty{display:none}.quarto-search-no-results.no-query{display:none}.aa-Source:has(.no-query){display:none}#quarto-search-results .aa-Panel{border:solid #dee2e6 1px}#quarto-search-results .aa-SourceNoResults{width:398px}.aa-DetachedOverlay .aa-Panel,#quarto-search-results .aa-Panel{max-height:65vh;overflow-y:auto;font-size:.925rem}.aa-DetachedOverlay .aa-SourceNoResults,#quarto-search-results .aa-SourceNoResults{height:60px;display:flex;justify-content:center;align-items:center}.aa-DetachedOverlay .search-error,#quarto-search-results .search-error{padding-top:10px;padding-left:20px;padding-right:20px;cursor:default}.aa-DetachedOverlay .search-error .search-error-title,#quarto-search-results .search-error .search-error-title{font-size:1.1rem;margin-bottom:.5rem}.aa-DetachedOverlay .search-error .search-error-title .search-error-icon,#quarto-search-results .search-error .search-error-title .search-error-icon{margin-right:8px}.aa-DetachedOverlay .search-error .search-error-text,#quarto-search-results .search-error .search-error-text{font-weight:300}.aa-DetachedOverlay .search-result-text,#quarto-search-results .search-result-text{font-weight:300;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2rem;max-height:2.4rem}.aa-DetachedOverlay .aa-SourceHeader .search-result-header,#quarto-search-results .aa-SourceHeader .search-result-header{font-size:.875rem;background-color:#f2f2f2;padding-left:14px;padding-bottom:4px;padding-top:4px}.aa-DetachedOverlay .aa-SourceHeader .search-result-header-no-results,#quarto-search-results .aa-SourceHeader .search-result-header-no-results{display:none}.aa-DetachedOverlay .aa-SourceFooter .algolia-search-logo,#quarto-search-results .aa-SourceFooter .algolia-search-logo{width:110px;opacity:.85;margin:8px;float:right}.aa-DetachedOverlay .search-result-section,#quarto-search-results .search-result-section{font-size:.925em}.aa-DetachedOverlay a.search-result-link,#quarto-search-results a.search-result-link{color:inherit;text-decoration:none}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item,#quarto-search-results li.aa-Item[aria-selected=true] .search-item{background-color:#2780e3}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-result-text-container{color:#fff;background-color:#2780e3}.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=true] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=true] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=true] .search-item .search-match.mark{color:#fff;background-color:#4b95e8}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item,#quarto-search-results li.aa-Item[aria-selected=false] .search-item{background-color:#fff}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item.search-result-more,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-section,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-title-container,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-result-text-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item.search-result-more,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-section,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-title-container,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-result-text-container{color:#343a40}.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item mark.search-match,.aa-DetachedOverlay li.aa-Item[aria-selected=false] .search-item .search-match.mark,#quarto-search-results li.aa-Item[aria-selected=false] .search-item mark.search-match,#quarto-search-results li.aa-Item[aria-selected=false] .search-item .search-match.mark{color:inherit;background-color:#e5effc}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-title-container{background-color:#fff;color:#343a40}.aa-DetachedOverlay .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container,#quarto-search-results .aa-Item .search-result-doc:not(.document-selectable) .search-result-text-container{padding-top:0px}.aa-DetachedOverlay li.aa-Item .search-result-doc.document-selectable .search-result-text-container,#quarto-search-results li.aa-Item .search-result-doc.document-selectable .search-result-text-container{margin-top:-4px}.aa-DetachedOverlay .aa-Item,#quarto-search-results .aa-Item{cursor:pointer}.aa-DetachedOverlay .aa-Item .search-item,#quarto-search-results .aa-Item .search-item{border-left:none;border-right:none;border-top:none;background-color:#fff;border-color:#dee2e6;color:#343a40}.aa-DetachedOverlay .aa-Item .search-item p,#quarto-search-results .aa-Item .search-item p{margin-top:0;margin-bottom:0}.aa-DetachedOverlay .aa-Item .search-item i.bi,#quarto-search-results .aa-Item .search-item i.bi{padding-left:8px;padding-right:8px;font-size:1.3em}.aa-DetachedOverlay .aa-Item .search-item .search-result-title,#quarto-search-results .aa-Item .search-item .search-result-title{margin-top:.3em;margin-bottom:0em}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs,#quarto-search-results .aa-Item .search-item .search-result-crumbs{white-space:nowrap;text-overflow:ellipsis;font-size:.8em;font-weight:300;margin-right:1em}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs:not(.search-result-crumbs-wrap),#quarto-search-results .aa-Item .search-item .search-result-crumbs:not(.search-result-crumbs-wrap){max-width:30%;margin-left:auto;margin-top:.5em;margin-bottom:.1rem}.aa-DetachedOverlay .aa-Item .search-item .search-result-crumbs.search-result-crumbs-wrap,#quarto-search-results .aa-Item .search-item .search-result-crumbs.search-result-crumbs-wrap{flex-basis:100%;margin-top:0em;margin-bottom:.2em;margin-left:37px}.aa-DetachedOverlay .aa-Item .search-result-title-container,#quarto-search-results .aa-Item .search-result-title-container{font-size:1em;display:flex;flex-wrap:wrap;padding:6px 4px 6px 4px}.aa-DetachedOverlay .aa-Item .search-result-text-container,#quarto-search-results .aa-Item .search-result-text-container{padding-bottom:8px;padding-right:8px;margin-left:42px}.aa-DetachedOverlay .aa-Item .search-result-doc-section,.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-doc-section,#quarto-search-results .aa-Item .search-result-more{padding-top:8px;padding-bottom:8px;padding-left:44px}.aa-DetachedOverlay .aa-Item .search-result-more,#quarto-search-results .aa-Item .search-result-more{font-size:.8em;font-weight:400}.aa-DetachedOverlay .aa-Item .search-result-doc,#quarto-search-results .aa-Item .search-result-doc{border-top:1px solid #dee2e6}.aa-DetachedSearchButton{background:none;border:none}.aa-DetachedSearchButton .aa-DetachedSearchButtonPlaceholder{display:none}.navbar .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#fdfeff}.sidebar-tools-collapse #quarto-search,.sidebar-tools-main #quarto-search{display:inline}.sidebar-tools-collapse #quarto-search .aa-Autocomplete,.sidebar-tools-main #quarto-search .aa-Autocomplete{display:inline}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton{padding-left:4px;padding-right:4px}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon{color:#595959}.sidebar-tools-collapse #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon,.sidebar-tools-main #quarto-search .aa-DetachedSearchButton .aa-DetachedSearchButtonIcon .aa-SubmitIcon{margin-top:-3px}.aa-DetachedContainer{background:rgba(255,255,255,.65);width:90%;bottom:0;box-shadow:rgba(222,226,230,.6) 0 0 0 1px;outline:currentColor none medium;display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:1101}.aa-DetachedContainer::after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{background-color:#fff;border-bottom:1px solid #dee2e6;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:.5em}.aa-DetachedCancelButton{background:none;font-size:.8em;border:0;border-radius:3px;color:#343a40;cursor:pointer;margin:0 0 0 .5em;padding:0 .5em}.aa-DetachedCancelButton:hover,.aa-DetachedCancelButton:focus{box-shadow:rgba(39,128,227,.6) 0 0 0 1px;outline:currentColor none medium}.aa-DetachedContainer--modal{bottom:inherit;height:auto;margin:0 auto;position:absolute;top:100px;border-radius:6px;max-width:850px}@media(max-width: 575.98px){.aa-DetachedContainer--modal{width:100%;top:0px;border-radius:0px;border:none}}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:var(--aa-detached-modal-max-height);padding-bottom:var(--aa-spacing-half);position:static}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:rgba(52,58,64,.4);position:fixed;left:0;right:0;top:0;margin:0;padding:0;height:100vh;z-index:1100}.quarto-dashboard.nav-fixed.dashboard-sidebar #quarto-content.quarto-dashboard-content{padding:0em}.quarto-dashboard #quarto-content.quarto-dashboard-content{padding:1em}.quarto-dashboard #quarto-content.quarto-dashboard-content>*{padding-top:0}@media(min-width: 576px){.quarto-dashboard{height:100%}}.quarto-dashboard .card.valuebox.bslib-card.bg-primary{background-color:#5397e9 !important}.quarto-dashboard .card.valuebox.bslib-card.bg-secondary{background-color:#343a40 !important}.quarto-dashboard .card.valuebox.bslib-card.bg-success{background-color:#3aa716 !important}.quarto-dashboard .card.valuebox.bslib-card.bg-info{background-color:rgba(153,84,187,.7019607843) !important}.quarto-dashboard .card.valuebox.bslib-card.bg-warning{background-color:#fa6400 !important}.quarto-dashboard .card.valuebox.bslib-card.bg-danger{background-color:rgba(255,0,57,.7019607843) !important}.quarto-dashboard .card.valuebox.bslib-card.bg-light{background-color:#f8f9fa !important}.quarto-dashboard .card.valuebox.bslib-card.bg-dark{background-color:#343a40 !important}.quarto-dashboard.dashboard-fill{display:flex;flex-direction:column}.quarto-dashboard #quarto-appendix{display:none}.quarto-dashboard #quarto-header #quarto-dashboard-header{border-top:solid 1px #549be9;border-bottom:solid 1px #549be9}.quarto-dashboard #quarto-header #quarto-dashboard-header>nav{padding-left:1em;padding-right:1em}.quarto-dashboard #quarto-header #quarto-dashboard-header>nav .navbar-brand-container{padding-left:0}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-toggler{margin-right:0}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-toggler-icon{height:1em;width:1em;background-image:url('data:image/svg+xml,')}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-brand-container{padding-right:1em}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-title{font-size:1.1em}.quarto-dashboard #quarto-header #quarto-dashboard-header .navbar-nav{font-size:.9em}.quarto-dashboard #quarto-dashboard-header .navbar{padding:0}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-container{padding-left:1em}.quarto-dashboard #quarto-dashboard-header .navbar.slim .navbar-brand-container .nav-link,.quarto-dashboard #quarto-dashboard-header .navbar.slim .navbar-nav .nav-link{padding:.7em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-color-scheme-toggle{order:9}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-toggler{margin-left:.5em;order:10}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-nav .nav-link{padding:.5em;height:100%;display:flex;align-items:center}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-nav .active{background-color:#4b95e8}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-brand-container{padding:.5em .5em .5em 0;display:flex;flex-direction:row;margin-right:2em;align-items:center}@media(max-width: 767.98px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-brand-container{margin-right:auto}}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{align-self:stretch}@media(min-width: 768px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{order:8}}@media(max-width: 767.98px){.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse{order:1000;padding-bottom:.5em}}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-collapse .navbar-nav{align-self:stretch}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title{font-size:1.25em;line-height:1.1em;display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title .navbar-title-text{margin-right:.4em}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-title a{text-decoration:none;color:inherit}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-subtitle,.quarto-dashboard #quarto-dashboard-header .navbar .navbar-author{font-size:.9rem;margin-right:.5em}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-author{margin-left:auto}.quarto-dashboard #quarto-dashboard-header .navbar .navbar-logo{max-height:48px;min-height:30px;object-fit:cover;margin-right:1em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-links{order:9;padding-right:1em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-link-text{margin-left:.25em}.quarto-dashboard #quarto-dashboard-header .navbar .quarto-dashboard-link{padding-right:0em;padding-left:.7em;text-decoration:none;color:#fdfeff}.quarto-dashboard .page-layout-custom .tab-content{padding:0;border:none}.quarto-dashboard-img-contain{height:100%;width:100%;object-fit:contain}@media(max-width: 575.98px){.quarto-dashboard .bslib-grid{grid-template-rows:minmax(1em, max-content) !important}.quarto-dashboard .sidebar-content{height:inherit}.quarto-dashboard .page-layout-custom{min-height:100vh}}.quarto-dashboard.dashboard-toolbar>.page-layout-custom,.quarto-dashboard.dashboard-sidebar>.page-layout-custom{padding:0}.quarto-dashboard .quarto-dashboard-content.quarto-dashboard-pages{padding:0}.quarto-dashboard .callout{margin-bottom:0;margin-top:0}.quarto-dashboard .html-fill-container figure{overflow:hidden}.quarto-dashboard bslib-tooltip .rounded-pill{border:solid #6c757d 1px}.quarto-dashboard bslib-tooltip .rounded-pill .svg{fill:#343a40}.quarto-dashboard .tabset .dashboard-card-no-title .nav-tabs{margin-left:0;margin-right:auto}.quarto-dashboard .tabset .tab-content{border:none}.quarto-dashboard .tabset .card-header .nav-link[role=tab]{margin-top:-6px;padding-top:6px;padding-bottom:6px}.quarto-dashboard .card.valuebox,.quarto-dashboard .card.bslib-value-box{min-height:3rem}.quarto-dashboard .card.valuebox .card-body,.quarto-dashboard .card.bslib-value-box .card-body{padding:0}.quarto-dashboard .bslib-value-box .value-box-value{font-size:clamp(.1em,15cqw,5em)}.quarto-dashboard .bslib-value-box .value-box-showcase .bi{font-size:clamp(.1em,max(18cqw,5.2cqh),5em);text-align:center;height:1em}.quarto-dashboard .bslib-value-box .value-box-showcase .bi::before{vertical-align:1em}.quarto-dashboard .bslib-value-box .value-box-area{margin-top:auto;margin-bottom:auto}.quarto-dashboard .card figure.quarto-float{display:flex;flex-direction:column;align-items:center}.quarto-dashboard .dashboard-scrolling{padding:1em}.quarto-dashboard .full-height{height:100%}.quarto-dashboard .showcase-bottom .value-box-grid{display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"top" "bottom"}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-showcase{grid-area:bottom;padding:0;margin:0}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-showcase i.bi{font-size:4rem}.quarto-dashboard .showcase-bottom .value-box-grid .value-box-area{grid-area:top}.quarto-dashboard .tab-content{margin-bottom:0}.quarto-dashboard .bslib-card .bslib-navs-card-title{justify-content:stretch;align-items:end}.quarto-dashboard .card-header{display:flex;flex-wrap:wrap;justify-content:space-between}.quarto-dashboard .card-header .card-title{display:flex;flex-direction:column;justify-content:center;margin-bottom:0}.quarto-dashboard .tabset .card-toolbar{margin-bottom:1em}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout{border:none;gap:var(--bslib-spacer, 1rem)}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.main{padding:0}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.sidebar{border-radius:.25rem;border:1px solid rgba(0,0,0,.175)}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.collapse-toggle{display:none}@media(max-width: 767.98px){.quarto-dashboard .bslib-grid>.bslib-sidebar-layout{grid-template-columns:1fr;grid-template-rows:max-content 1fr}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout>.main{grid-column:1;grid-row:2}.quarto-dashboard .bslib-grid>.bslib-sidebar-layout .sidebar{grid-column:1;grid-row:1}}.quarto-dashboard .sidebar-right .sidebar{padding-left:2.5em}.quarto-dashboard .sidebar-right .collapse-toggle{left:2px}.quarto-dashboard .quarto-dashboard .sidebar-right button.collapse-toggle:not(.transitioning){left:unset}.quarto-dashboard aside.sidebar{padding-left:1em;padding-right:1em;background-color:rgba(52,58,64,.25);color:#343a40}.quarto-dashboard .bslib-sidebar-layout>div.main{padding:.7em}.quarto-dashboard .bslib-sidebar-layout button.collapse-toggle{margin-top:.3em}.quarto-dashboard .bslib-sidebar-layout .collapse-toggle{top:0}.quarto-dashboard .bslib-sidebar-layout.sidebar-collapsed:not(.transitioning):not(.sidebar-right) .collapse-toggle{left:2px}.quarto-dashboard .sidebar>section>.h3:first-of-type{margin-top:0em}.quarto-dashboard .sidebar .h3,.quarto-dashboard .sidebar .h4,.quarto-dashboard .sidebar .h5,.quarto-dashboard .sidebar .h6{margin-top:.5em}.quarto-dashboard .sidebar form{flex-direction:column;align-items:start;margin-bottom:1em}.quarto-dashboard .sidebar form div[class*=oi-][class$=-input]{flex-direction:column}.quarto-dashboard .sidebar form[class*=oi-][class$=-toggle]{flex-direction:row-reverse;align-items:center;justify-content:start}.quarto-dashboard .sidebar form input[type=range]{margin-top:.5em;margin-right:.8em;margin-left:1em}.quarto-dashboard .sidebar label{width:fit-content}.quarto-dashboard .sidebar .card-body{margin-bottom:2em}.quarto-dashboard .sidebar .shiny-input-container{margin-bottom:1em}.quarto-dashboard .sidebar .shiny-options-group{margin-top:0}.quarto-dashboard .sidebar .control-label{margin-bottom:.3em}.quarto-dashboard .card .card-body .quarto-layout-row{align-items:stretch}.quarto-dashboard .toolbar{font-size:.9em;display:flex;flex-direction:row;border-top:solid 1px #bcbfc0;padding:1em;flex-wrap:wrap;background-color:rgba(52,58,64,.25)}.quarto-dashboard .toolbar .cell-output-display{display:flex}.quarto-dashboard .toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .toolbar>*:last-child{margin-right:0}.quarto-dashboard .toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .toolbar .shiny-input-container{padding-bottom:0;margin-bottom:0}.quarto-dashboard .toolbar .shiny-input-container>*{flex-shrink:0;flex-grow:0}.quarto-dashboard .toolbar .form-group.shiny-input-container:not([role=group])>label{margin-bottom:0}.quarto-dashboard .toolbar .shiny-input-container.no-baseline{align-items:start;padding-top:6px}.quarto-dashboard .toolbar .shiny-input-container{display:flex;align-items:baseline}.quarto-dashboard .toolbar .shiny-input-container label{padding-right:.4em}.quarto-dashboard .toolbar .shiny-input-container .bslib-input-switch{margin-top:6px}.quarto-dashboard .toolbar input[type=text]{line-height:1;width:inherit}.quarto-dashboard .toolbar .input-daterange{width:inherit}.quarto-dashboard .toolbar .input-daterange input[type=text]{height:2.4em;width:10em}.quarto-dashboard .toolbar .input-daterange .input-group-addon{height:auto;padding:0;margin-left:-5px !important;margin-right:-5px}.quarto-dashboard .toolbar .input-daterange .input-group-addon .input-group-text{padding-top:0;padding-bottom:0;height:100%}.quarto-dashboard .toolbar span.irs.irs--shiny{width:10em}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-line{top:9px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-min,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-max,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-from,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-to,.quarto-dashboard .toolbar span.irs.irs--shiny .irs-single{top:20px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-bar{top:8px}.quarto-dashboard .toolbar span.irs.irs--shiny .irs-handle{top:0px}.quarto-dashboard .toolbar .shiny-input-checkboxgroup>label{margin-top:6px}.quarto-dashboard .toolbar .shiny-input-checkboxgroup>.shiny-options-group{margin-top:0;align-items:baseline}.quarto-dashboard .toolbar .shiny-input-radiogroup>label{margin-top:6px}.quarto-dashboard .toolbar .shiny-input-radiogroup>.shiny-options-group{align-items:baseline;margin-top:0}.quarto-dashboard .toolbar .shiny-input-radiogroup>.shiny-options-group>.radio{margin-right:.3em}.quarto-dashboard .toolbar .form-select{padding-top:.2em;padding-bottom:.2em}.quarto-dashboard .toolbar .shiny-input-select{min-width:6em}.quarto-dashboard .toolbar div.checkbox{margin-bottom:0px}.quarto-dashboard .toolbar>.checkbox:first-child{margin-top:6px}.quarto-dashboard .toolbar form{width:fit-content}.quarto-dashboard .toolbar form label{padding-top:.2em;padding-bottom:.2em;width:fit-content}.quarto-dashboard .toolbar form input[type=date]{width:fit-content}.quarto-dashboard .toolbar form input[type=color]{width:3em}.quarto-dashboard .toolbar form button{padding:.4em}.quarto-dashboard .toolbar form select{width:fit-content}.quarto-dashboard .toolbar>*{font-size:.9em;flex-grow:0}.quarto-dashboard .toolbar .shiny-input-container label{margin-bottom:1px}.quarto-dashboard .toolbar-bottom{margin-top:1em;margin-bottom:0 !important;order:2}.quarto-dashboard .quarto-dashboard-content>.dashboard-toolbar-container>.toolbar-content>.tab-content>.tab-pane>*:not(.bslib-sidebar-layout){padding:1em}.quarto-dashboard .quarto-dashboard-content>.dashboard-toolbar-container>.toolbar-content>*:not(.tab-content){padding:1em}.quarto-dashboard .quarto-dashboard-content>.tab-content>.dashboard-page>.dashboard-toolbar-container>.toolbar-content,.quarto-dashboard .quarto-dashboard-content>.tab-content>.dashboard-page:not(.dashboard-sidebar-container)>*:not(.dashboard-toolbar-container){padding:1em}.quarto-dashboard .toolbar-content{padding:0}.quarto-dashboard .quarto-dashboard-content.quarto-dashboard-pages .tab-pane>.dashboard-toolbar-container .toolbar{border-radius:0;margin-bottom:0}.quarto-dashboard .dashboard-toolbar-container.toolbar-toplevel .toolbar{border-bottom:1px solid rgba(0,0,0,.175)}.quarto-dashboard .dashboard-toolbar-container.toolbar-toplevel .toolbar-bottom{margin-top:0}.quarto-dashboard .dashboard-toolbar-container:not(.toolbar-toplevel) .toolbar{margin-bottom:1em;border-top:none;border-radius:.25rem;border:1px solid rgba(0,0,0,.175)}.quarto-dashboard .vega-embed.has-actions details{width:1.7em;height:2em;position:absolute !important;top:0;right:0}.quarto-dashboard .dashboard-toolbar-container{padding:0}.quarto-dashboard .card .card-header p:last-child,.quarto-dashboard .card .card-footer p:last-child{margin-bottom:0}.quarto-dashboard .card .card-body>.h4:first-child{margin-top:0}.quarto-dashboard .card .card-body{z-index:4}@media(max-width: 767.98px){.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_length,.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_info,.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_paginate{text-align:initial}.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_filter{text-align:right}.quarto-dashboard .card .card-body .itables div.dataTables_wrapper div.dataTables_paginate ul.pagination{justify-content:initial}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;padding-top:0}.quarto-dashboard .card .card-body .itables .dataTables_wrapper table{flex-shrink:0}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons{margin-bottom:.5em;margin-left:auto;width:fit-content;float:right}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons.btn-group{background:#fff;border:none}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons .btn-secondary{background-color:#fff;background-image:none;border:solid #dee2e6 1px;padding:.2em .7em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dt-buttons .btn span{font-size:.8em;color:#343a40}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{margin-left:.5em;margin-bottom:.5em;padding-top:0}@media(min-width: 768px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{font-size:.875em}}@media(max-width: 767.98px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_info{font-size:.8em}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_filter{margin-bottom:.5em;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_filter input[type=search]{padding:1px 5px 1px 5px;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_length{flex-basis:1 1 50%;margin-bottom:.5em;font-size:.875em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_length select{padding:.4em 3em .4em .5em;font-size:.875em;margin-left:.2em;margin-right:.2em}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate{flex-shrink:0}@media(min-width: 768px){.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate{margin-left:auto}}.quarto-dashboard .card .card-body .itables .dataTables_wrapper .dataTables_paginate ul.pagination .paginate_button .page-link{font-size:.8em}.quarto-dashboard .card .card-footer{font-size:.9em}.quarto-dashboard .card .card-toolbar{display:flex;flex-grow:1;flex-direction:row;width:100%;flex-wrap:wrap}.quarto-dashboard .card .card-toolbar>*{font-size:.8em;flex-grow:0}.quarto-dashboard .card .card-toolbar>.card-title{font-size:1em;flex-grow:1;align-self:flex-start;margin-top:.1em}.quarto-dashboard .card .card-toolbar .cell-output-display{display:flex}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .card .card-toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card .card-toolbar>*:last-child{margin-right:0}.quarto-dashboard .card .card-toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .card .card-toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .card .card-toolbar form{width:fit-content}.quarto-dashboard .card .card-toolbar form label{padding-top:.2em;padding-bottom:.2em;width:fit-content}.quarto-dashboard .card .card-toolbar form input[type=date]{width:fit-content}.quarto-dashboard .card .card-toolbar form input[type=color]{width:3em}.quarto-dashboard .card .card-toolbar form button{padding:.4em}.quarto-dashboard .card .card-toolbar form select{width:fit-content}.quarto-dashboard .card .card-toolbar .cell-output-display{display:flex}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:.5em;margin-bottom:.5em;width:inherit}.quarto-dashboard .card .card-toolbar .shiny-input-container>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card .card-toolbar>*:last-child{margin-right:0}.quarto-dashboard .card .card-toolbar>*>*{margin-right:1em;align-items:baseline}.quarto-dashboard .card .card-toolbar>*>*>a{text-decoration:none;margin-top:auto;margin-bottom:auto}.quarto-dashboard .card .card-toolbar .shiny-input-container{padding-bottom:0;margin-bottom:0}.quarto-dashboard .card .card-toolbar .shiny-input-container>*{flex-shrink:0;flex-grow:0}.quarto-dashboard .card .card-toolbar .form-group.shiny-input-container:not([role=group])>label{margin-bottom:0}.quarto-dashboard .card .card-toolbar .shiny-input-container.no-baseline{align-items:start;padding-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-container{display:flex;align-items:baseline}.quarto-dashboard .card .card-toolbar .shiny-input-container label{padding-right:.4em}.quarto-dashboard .card .card-toolbar .shiny-input-container .bslib-input-switch{margin-top:6px}.quarto-dashboard .card .card-toolbar input[type=text]{line-height:1;width:inherit}.quarto-dashboard .card .card-toolbar .input-daterange{width:inherit}.quarto-dashboard .card .card-toolbar .input-daterange input[type=text]{height:2.4em;width:10em}.quarto-dashboard .card .card-toolbar .input-daterange .input-group-addon{height:auto;padding:0;margin-left:-5px !important;margin-right:-5px}.quarto-dashboard .card .card-toolbar .input-daterange .input-group-addon .input-group-text{padding-top:0;padding-bottom:0;height:100%}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny{width:10em}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-line{top:9px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-min,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-max,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-from,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-to,.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-single{top:20px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-bar{top:8px}.quarto-dashboard .card .card-toolbar span.irs.irs--shiny .irs-handle{top:0px}.quarto-dashboard .card .card-toolbar .shiny-input-checkboxgroup>label{margin-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-checkboxgroup>.shiny-options-group{margin-top:0;align-items:baseline}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>label{margin-top:6px}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>.shiny-options-group{align-items:baseline;margin-top:0}.quarto-dashboard .card .card-toolbar .shiny-input-radiogroup>.shiny-options-group>.radio{margin-right:.3em}.quarto-dashboard .card .card-toolbar .form-select{padding-top:.2em;padding-bottom:.2em}.quarto-dashboard .card .card-toolbar .shiny-input-select{min-width:6em}.quarto-dashboard .card .card-toolbar div.checkbox{margin-bottom:0px}.quarto-dashboard .card .card-toolbar>.checkbox:first-child{margin-top:6px}.quarto-dashboard .card-body>table>thead{border-top:none}.quarto-dashboard .card-body>.table>:not(caption)>*>*{background-color:#fff}.tableFloatingHeaderOriginal{background-color:#fff;position:sticky !important;top:0 !important}.dashboard-data-table{margin-top:-1px}.quarto-listing{padding-bottom:1em}.listing-pagination{padding-top:.5em}ul.pagination{float:right;padding-left:8px;padding-top:.5em}ul.pagination li{padding-right:.75em}ul.pagination li.disabled a,ul.pagination li.active a{color:#fff;text-decoration:none}ul.pagination li:last-of-type{padding-right:0}.listing-actions-group{display:flex}.quarto-listing-filter{margin-bottom:1em;width:200px;margin-left:auto}.quarto-listing-sort{margin-bottom:1em;margin-right:auto;width:auto}.quarto-listing-sort .input-group-text{font-size:.8em}.input-group-text{border-right:none}.quarto-listing-sort select.form-select{font-size:.8em}.listing-no-matching{text-align:center;padding-top:2em;padding-bottom:3em;font-size:1em}#quarto-margin-sidebar .quarto-listing-category{padding-top:0;font-size:1rem}#quarto-margin-sidebar .quarto-listing-category-title{cursor:pointer;font-weight:600;font-size:1rem}.quarto-listing-category .category{cursor:pointer}.quarto-listing-category .category.active{font-weight:600}.quarto-listing-category.category-cloud{display:flex;flex-wrap:wrap;align-items:baseline}.quarto-listing-category.category-cloud .category{padding-right:5px}.quarto-listing-category.category-cloud .category-cloud-1{font-size:.75em}.quarto-listing-category.category-cloud .category-cloud-2{font-size:.95em}.quarto-listing-category.category-cloud .category-cloud-3{font-size:1.15em}.quarto-listing-category.category-cloud .category-cloud-4{font-size:1.35em}.quarto-listing-category.category-cloud .category-cloud-5{font-size:1.55em}.quarto-listing-category.category-cloud .category-cloud-6{font-size:1.75em}.quarto-listing-category.category-cloud .category-cloud-7{font-size:1.95em}.quarto-listing-category.category-cloud .category-cloud-8{font-size:2.15em}.quarto-listing-category.category-cloud .category-cloud-9{font-size:2.35em}.quarto-listing-category.category-cloud .category-cloud-10{font-size:2.55em}.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-1{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-2{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-3{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-3{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-4{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-4{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-5{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-5{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-6{grid-template-columns:repeat(6, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-6{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-6{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-7{grid-template-columns:repeat(7, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-7{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-7{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-8{grid-template-columns:repeat(8, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-8{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-8{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-9{grid-template-columns:repeat(9, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-9{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-9{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-10{grid-template-columns:repeat(10, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-10{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-10{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-11{grid-template-columns:repeat(11, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-11{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-11{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-cols-12{grid-template-columns:repeat(12, minmax(0, 1fr));gap:1.5em}@media(max-width: 767.98px){.quarto-listing-cols-12{grid-template-columns:repeat(2, minmax(0, 1fr));gap:1.5em}}@media(max-width: 575.98px){.quarto-listing-cols-12{grid-template-columns:minmax(0, 1fr);gap:1.5em}}.quarto-listing-grid{gap:1.5em}.quarto-grid-item.borderless{border:none}.quarto-grid-item.borderless .listing-categories .listing-category:last-of-type,.quarto-grid-item.borderless .listing-categories .listing-category:first-of-type{padding-left:0}.quarto-grid-item.borderless .listing-categories .listing-category{border:0}.quarto-grid-link{text-decoration:none;color:inherit}.quarto-grid-link:hover{text-decoration:none;color:inherit}.quarto-grid-item h5.title,.quarto-grid-item .title.h5{margin-top:0;margin-bottom:0}.quarto-grid-item .card-footer{display:flex;justify-content:space-between;font-size:.8em}.quarto-grid-item .card-footer p{margin-bottom:0}.quarto-grid-item p.card-img-top{margin-bottom:0}.quarto-grid-item p.card-img-top>img{object-fit:cover}.quarto-grid-item .card-other-values{margin-top:.5em;font-size:.8em}.quarto-grid-item .card-other-values tr{margin-bottom:.5em}.quarto-grid-item .card-other-values tr>td:first-of-type{font-weight:600;padding-right:1em;padding-left:1em;vertical-align:top}.quarto-grid-item div.post-contents{display:flex;flex-direction:column;text-decoration:none;height:100%}.quarto-grid-item .listing-item-img-placeholder{background-color:rgba(52,58,64,.25);flex-shrink:0}.quarto-grid-item .card-attribution{padding-top:1em;display:flex;gap:1em;text-transform:uppercase;color:#6c757d;font-weight:500;flex-grow:10;align-items:flex-end}.quarto-grid-item .description{padding-bottom:1em}.quarto-grid-item .card-attribution .date{align-self:flex-end}.quarto-grid-item .card-attribution.justify{justify-content:space-between}.quarto-grid-item .card-attribution.start{justify-content:flex-start}.quarto-grid-item .card-attribution.end{justify-content:flex-end}.quarto-grid-item .card-title{margin-bottom:.1em}.quarto-grid-item .card-subtitle{padding-top:.25em}.quarto-grid-item .card-text{font-size:.9em}.quarto-grid-item .listing-reading-time{padding-bottom:.25em}.quarto-grid-item .card-text-small{font-size:.8em}.quarto-grid-item .card-subtitle.subtitle{font-size:.9em;font-weight:600;padding-bottom:.5em}.quarto-grid-item .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}.quarto-grid-item .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}.quarto-grid-item.card-right{text-align:right}.quarto-grid-item.card-right .listing-categories{justify-content:flex-end}.quarto-grid-item.card-left{text-align:left}.quarto-grid-item.card-center{text-align:center}.quarto-grid-item.card-center .listing-description{text-align:justify}.quarto-grid-item.card-center .listing-categories{justify-content:center}table.quarto-listing-table td.image{padding:0px}table.quarto-listing-table td.image img{width:100%;max-width:50px;object-fit:contain}table.quarto-listing-table a{text-decoration:none;word-break:keep-all}table.quarto-listing-table th a{color:inherit}table.quarto-listing-table th a.asc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table th a.desc:after{margin-bottom:-2px;margin-left:5px;display:inline-block;height:1rem;width:1rem;background-repeat:no-repeat;background-size:1rem 1rem;background-image:url('data:image/svg+xml,');content:""}table.quarto-listing-table.table-hover td{cursor:pointer}.quarto-post.image-left{flex-direction:row}.quarto-post.image-right{flex-direction:row-reverse}@media(max-width: 767.98px){.quarto-post.image-right,.quarto-post.image-left{gap:0em;flex-direction:column}.quarto-post .metadata{padding-bottom:1em;order:2}.quarto-post .body{order:1}.quarto-post .thumbnail{order:3}}.list.quarto-listing-default div:last-of-type{border-bottom:none}@media(min-width: 992px){.quarto-listing-container-default{margin-right:2em}}div.quarto-post{display:flex;gap:2em;margin-bottom:1.5em;border-bottom:1px solid #dee2e6}@media(max-width: 767.98px){div.quarto-post{padding-bottom:1em}}div.quarto-post .metadata{flex-basis:20%;flex-grow:0;margin-top:.2em;flex-shrink:10}div.quarto-post .thumbnail{flex-basis:30%;flex-grow:0;flex-shrink:0}div.quarto-post .thumbnail img{margin-top:.4em;width:100%;object-fit:cover}div.quarto-post .body{flex-basis:45%;flex-grow:1;flex-shrink:0}div.quarto-post .body h3.listing-title,div.quarto-post .body .listing-title.h3{margin-top:0px;margin-bottom:0px;border-bottom:none}div.quarto-post .body .listing-subtitle{font-size:.875em;margin-bottom:.5em;margin-top:.2em}div.quarto-post .body .description{font-size:.9em}div.quarto-post .body pre code{white-space:pre-wrap}div.quarto-post a{color:#343a40;text-decoration:none}div.quarto-post .metadata{display:flex;flex-direction:column;font-size:.8em;font-family:"Source Sans Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";flex-basis:33%}div.quarto-post .listing-categories{display:flex;flex-wrap:wrap;padding-bottom:5px}div.quarto-post .listing-categories .listing-category{color:#6c757d;border:solid 1px #dee2e6;border-radius:.25rem;text-transform:uppercase;font-size:.65em;padding-left:.5em;padding-right:.5em;padding-top:.15em;padding-bottom:.15em;cursor:pointer;margin-right:4px;margin-bottom:4px}div.quarto-post .listing-description{margin-bottom:.5em}div.quarto-about-jolla{display:flex !important;flex-direction:column;align-items:center;margin-top:10%;padding-bottom:1em}div.quarto-about-jolla .about-image{object-fit:cover;margin-left:auto;margin-right:auto;margin-bottom:1.5em}div.quarto-about-jolla img.round{border-radius:50%}div.quarto-about-jolla img.rounded{border-radius:10px}div.quarto-about-jolla .quarto-title h1.title,div.quarto-about-jolla .quarto-title .title.h1{text-align:center}div.quarto-about-jolla .quarto-title .description{text-align:center}div.quarto-about-jolla h2,div.quarto-about-jolla .h2{border-bottom:none}div.quarto-about-jolla .about-sep{width:60%}div.quarto-about-jolla main{text-align:center}div.quarto-about-jolla .about-links{display:flex}@media(min-width: 992px){div.quarto-about-jolla .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-jolla .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-jolla .about-link{color:#626d78;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-jolla .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-jolla .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-jolla .about-link:hover{color:#2761e3}div.quarto-about-jolla .about-link i.bi{margin-right:.15em}div.quarto-about-solana{display:flex !important;flex-direction:column;padding-top:3em !important;padding-bottom:1em}div.quarto-about-solana .about-entity{display:flex !important;align-items:start;justify-content:space-between}@media(min-width: 992px){div.quarto-about-solana .about-entity{flex-direction:row}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity{flex-direction:column-reverse;align-items:center;text-align:center}}div.quarto-about-solana .about-entity .entity-contents{display:flex;flex-direction:column}@media(max-width: 767.98px){div.quarto-about-solana .about-entity .entity-contents{width:100%}}div.quarto-about-solana .about-entity .about-image{object-fit:cover}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-image{margin-bottom:1.5em}}div.quarto-about-solana .about-entity img.round{border-radius:50%}div.quarto-about-solana .about-entity img.rounded{border-radius:10px}div.quarto-about-solana .about-entity .about-links{display:flex;justify-content:left;padding-bottom:1.2em}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-solana .about-entity .about-link{color:#626d78;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-solana .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-solana .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-solana .about-entity .about-link:hover{color:#2761e3}div.quarto-about-solana .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-solana .about-contents{padding-right:1.5em;flex-basis:0;flex-grow:1}div.quarto-about-solana .about-contents main.content{margin-top:0}div.quarto-about-solana .about-contents h2,div.quarto-about-solana .about-contents .h2{border-bottom:none}div.quarto-about-trestles{display:flex !important;flex-direction:row;padding-top:3em !important;padding-bottom:1em}@media(max-width: 991.98px){div.quarto-about-trestles{flex-direction:column;padding-top:0em !important}}div.quarto-about-trestles .about-entity{display:flex !important;flex-direction:column;align-items:center;text-align:center;padding-right:1em}@media(min-width: 992px){div.quarto-about-trestles .about-entity{flex:0 0 42%}}div.quarto-about-trestles .about-entity .about-image{object-fit:cover;margin-bottom:1.5em}div.quarto-about-trestles .about-entity img.round{border-radius:50%}div.quarto-about-trestles .about-entity img.rounded{border-radius:10px}div.quarto-about-trestles .about-entity .about-links{display:flex;justify-content:center}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-trestles .about-entity .about-link{color:#626d78;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-trestles .about-entity .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-trestles .about-entity .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-trestles .about-entity .about-link:hover{color:#2761e3}div.quarto-about-trestles .about-entity .about-link i.bi{margin-right:.15em}div.quarto-about-trestles .about-contents{flex-basis:0;flex-grow:1}div.quarto-about-trestles .about-contents h2,div.quarto-about-trestles .about-contents .h2{border-bottom:none}@media(min-width: 992px){div.quarto-about-trestles .about-contents{border-left:solid 1px #dee2e6;padding-left:1.5em}}div.quarto-about-trestles .about-contents main.content{margin-top:0}div.quarto-about-marquee{padding-bottom:1em}div.quarto-about-marquee .about-contents{display:flex;flex-direction:column}div.quarto-about-marquee .about-image{max-height:550px;margin-bottom:1.5em;object-fit:cover}div.quarto-about-marquee img.round{border-radius:50%}div.quarto-about-marquee img.rounded{border-radius:10px}div.quarto-about-marquee h2,div.quarto-about-marquee .h2{border-bottom:none}div.quarto-about-marquee .about-links{display:flex;justify-content:center;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-marquee .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-marquee .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-marquee .about-link{color:#626d78;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-marquee .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-marquee .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-marquee .about-link:hover{color:#2761e3}div.quarto-about-marquee .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-marquee .about-link{border:none}}div.quarto-about-broadside{display:flex;flex-direction:column;padding-bottom:1em}div.quarto-about-broadside .about-main{display:flex !important;padding-top:0 !important}@media(min-width: 992px){div.quarto-about-broadside .about-main{flex-direction:row;align-items:flex-start}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main{flex-direction:column}}@media(max-width: 991.98px){div.quarto-about-broadside .about-main .about-entity{flex-shrink:0;width:100%;height:450px;margin-bottom:1.5em;background-size:cover;background-repeat:no-repeat}}@media(min-width: 992px){div.quarto-about-broadside .about-main .about-entity{flex:0 10 50%;margin-right:1.5em;width:100%;height:100%;background-size:100%;background-repeat:no-repeat}}div.quarto-about-broadside .about-main .about-contents{padding-top:14px;flex:0 0 50%}div.quarto-about-broadside h2,div.quarto-about-broadside .h2{border-bottom:none}div.quarto-about-broadside .about-sep{margin-top:1.5em;width:60%;align-self:center}div.quarto-about-broadside .about-links{display:flex;justify-content:center;column-gap:20px;padding-top:1.5em}@media(min-width: 992px){div.quarto-about-broadside .about-links{flex-direction:row;column-gap:.8em;row-gap:15px;flex-wrap:wrap}}@media(max-width: 991.98px){div.quarto-about-broadside .about-links{flex-direction:column;row-gap:1em;width:100%;padding-bottom:1.5em}}div.quarto-about-broadside .about-link{color:#626d78;text-decoration:none;border:solid 1px}@media(min-width: 992px){div.quarto-about-broadside .about-link{font-size:.8em;padding:.25em .5em;border-radius:4px}}@media(max-width: 991.98px){div.quarto-about-broadside .about-link{font-size:1.1em;padding:.5em .5em;text-align:center;border-radius:6px}}div.quarto-about-broadside .about-link:hover{color:#2761e3}div.quarto-about-broadside .about-link i.bi{margin-right:.15em}@media(min-width: 992px){div.quarto-about-broadside .about-link{border:none}}.tippy-box[data-theme~=quarto]{background-color:#fff;border:solid 1px #dee2e6;border-radius:.25rem;color:#343a40;font-size:.875rem}.tippy-box[data-theme~=quarto]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=quarto]>.tippy-arrow:after,.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{content:"";position:absolute;z-index:-1}.tippy-box[data-theme~=quarto]>.tippy-arrow:after{border-color:rgba(0,0,0,0);border-style:solid}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-6px}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-6px}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-6px}.tippy-box[data-placement^=left]>.tippy-arrow:before{right:-6px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-arrow:after{border-top-color:#dee2e6;border-width:7px 7px 0;top:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow>svg{top:16px}.tippy-box[data-theme~=quarto][data-placement^=top]>.tippy-svg-arrow:after{top:17px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff;bottom:16px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-arrow:after{border-bottom-color:#dee2e6;border-width:0 7px 7px;bottom:17px;left:1px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow>svg{bottom:15px}.tippy-box[data-theme~=quarto][data-placement^=bottom]>.tippy-svg-arrow:after{bottom:17px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-arrow:after{border-left-color:#dee2e6;border-width:7px 0 7px 7px;left:17px;top:1px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow>svg{left:11px}.tippy-box[data-theme~=quarto][data-placement^=left]>.tippy-svg-arrow:after{left:12px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff;right:16px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-arrow:after{border-width:7px 7px 7px 0;right:17px;top:1px;border-right-color:#dee2e6}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow>svg{right:11px}.tippy-box[data-theme~=quarto][data-placement^=right]>.tippy-svg-arrow:after{right:12px}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow{fill:#343a40}.tippy-box[data-theme~=quarto]>.tippy-svg-arrow:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMCA2czEuNzk2LS4wMTMgNC42Ny0zLjYxNUM1Ljg1MS45IDYuOTMuMDA2IDggMGMxLjA3LS4wMDYgMi4xNDguODg3IDMuMzQzIDIuMzg1QzE0LjIzMyA2LjAwNSAxNiA2IDE2IDZIMHoiIGZpbGw9InJnYmEoMCwgOCwgMTYsIDAuMikiLz48L3N2Zz4=);background-size:16px 6px;width:16px;height:6px}.top-right{position:absolute;top:1em;right:1em}.visually-hidden{border:0;clip:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none !important}.zindex-bottom{z-index:-1 !important}figure.figure{display:block}.quarto-layout-panel{margin-bottom:1em}.quarto-layout-panel>figure{width:100%}.quarto-layout-panel>figure>figcaption,.quarto-layout-panel>.panel-caption{margin-top:10pt}.quarto-layout-panel>.table-caption{margin-top:0px}.table-caption p{margin-bottom:.5em}.quarto-layout-row{display:flex;flex-direction:row;align-items:flex-start}.quarto-layout-valign-top{align-items:flex-start}.quarto-layout-valign-bottom{align-items:flex-end}.quarto-layout-valign-center{align-items:center}.quarto-layout-cell{position:relative;margin-right:20px}.quarto-layout-cell:last-child{margin-right:0}.quarto-layout-cell figure,.quarto-layout-cell>p{margin:.2em}.quarto-layout-cell img{max-width:100%}.quarto-layout-cell .html-widget{width:100% !important}.quarto-layout-cell div figure p{margin:0}.quarto-layout-cell figure{display:block;margin-inline-start:0;margin-inline-end:0}.quarto-layout-cell table{display:inline-table}.quarto-layout-cell-subref figcaption,figure .quarto-layout-row figure figcaption{text-align:center;font-style:italic}.quarto-figure{position:relative;margin-bottom:1em}.quarto-figure>figure{width:100%;margin-bottom:0}.quarto-figure-left>figure>p,.quarto-figure-left>figure>div{text-align:left}.quarto-figure-center>figure>p,.quarto-figure-center>figure>div{text-align:center}.quarto-figure-right>figure>p,.quarto-figure-right>figure>div{text-align:right}.quarto-figure>figure>div.cell-annotation,.quarto-figure>figure>div code{text-align:left}figure>p:empty{display:none}figure>p:first-child{margin-top:0;margin-bottom:0}figure>figcaption.quarto-float-caption-bottom{margin-bottom:.5em}figure>figcaption.quarto-float-caption-top{margin-top:.5em}div[id^=tbl-]{position:relative}.quarto-figure>.anchorjs-link{position:absolute;top:.6em;right:.5em}div[id^=tbl-]>.anchorjs-link{position:absolute;top:.7em;right:.3em}.quarto-figure:hover>.anchorjs-link,div[id^=tbl-]:hover>.anchorjs-link,h2:hover>.anchorjs-link,.h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,.h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,.h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,.h5:hover>.anchorjs-link,h6:hover>.anchorjs-link,.h6:hover>.anchorjs-link,.reveal-anchorjs-link>.anchorjs-link{opacity:1}#title-block-header{margin-block-end:1rem;position:relative;margin-top:-1px}#title-block-header .abstract{margin-block-start:1rem}#title-block-header .abstract .abstract-title{font-weight:600}#title-block-header a{text-decoration:none}#title-block-header .author,#title-block-header .date,#title-block-header .doi{margin-block-end:.2rem}#title-block-header .quarto-title-block>div{display:flex}#title-block-header .quarto-title-block>div>h1,#title-block-header .quarto-title-block>div>.h1{flex-grow:1}#title-block-header .quarto-title-block>div>button{flex-shrink:0;height:2.25rem;margin-top:0}@media(min-width: 992px){#title-block-header .quarto-title-block>div>button{margin-top:5px}}tr.header>th>p:last-of-type{margin-bottom:0px}table,table.table{margin-top:.5rem;margin-bottom:.5rem}caption,.table-caption{padding-top:.5rem;padding-bottom:.5rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-top{margin-top:.5rem;margin-bottom:.25rem;text-align:center}figure.quarto-float-tbl figcaption.quarto-float-caption-bottom{padding-top:.25rem;margin-bottom:.5rem;text-align:center}.utterances{max-width:none;margin-left:-8px}iframe{margin-bottom:1em}details{margin-bottom:1em}details[show]{margin-bottom:0}details>summary{color:#6c757d}details>summary>p:only-child{display:inline}pre.sourceCode,code.sourceCode{position:relative}p code:not(.sourceCode){white-space:pre-wrap}code{white-space:pre}@media print{code{white-space:pre-wrap}}pre>code{display:block}pre>code.sourceCode{white-space:pre}pre>code.sourceCode>span>a:first-child::before{text-decoration:none}pre.code-overflow-wrap>code.sourceCode{white-space:pre-wrap}pre.code-overflow-scroll>code.sourceCode{white-space:pre}code a:any-link{color:inherit;text-decoration:none}code a:hover{color:inherit;text-decoration:underline}ul.task-list{padding-left:1em}[data-tippy-root]{display:inline-block}.tippy-content .footnote-back{display:none}.footnote-back{margin-left:.2em}.tippy-content{overflow-x:auto}.quarto-embedded-source-code{display:none}.quarto-unresolved-ref{font-weight:600}.quarto-cover-image{max-width:35%;float:right;margin-left:30px}.cell-output-display .widget-subarea{margin-bottom:1em}.cell-output-display:not(.no-overflow-x),.knitsql-table:not(.no-overflow-x){overflow-x:auto}.panel-input{margin-bottom:1em}.panel-input>div,.panel-input>div>div{display:inline-block;vertical-align:top;padding-right:12px}.panel-input>p:last-child{margin-bottom:0}.layout-sidebar{margin-bottom:1em}.layout-sidebar .tab-content{border:none}.tab-content>.page-columns.active{display:grid}div.sourceCode>iframe{width:100%;height:300px;margin-bottom:-0.5em}a{text-underline-offset:3px}div.ansi-escaped-output{font-family:monospace;display:block}/*! +* +* ansi colors from IPython notebook's +* +* we also add `bright-[color]-` synonyms for the `-[color]-intense` classes since +* that seems to be what ansi_up emits +* +*/.ansi-black-fg{color:#3e424d}.ansi-black-bg{background-color:#3e424d}.ansi-black-intense-black,.ansi-bright-black-fg{color:#282c36}.ansi-black-intense-black,.ansi-bright-black-bg{background-color:#282c36}.ansi-red-fg{color:#e75c58}.ansi-red-bg{background-color:#e75c58}.ansi-red-intense-red,.ansi-bright-red-fg{color:#b22b31}.ansi-red-intense-red,.ansi-bright-red-bg{background-color:#b22b31}.ansi-green-fg{color:#00a250}.ansi-green-bg{background-color:#00a250}.ansi-green-intense-green,.ansi-bright-green-fg{color:#007427}.ansi-green-intense-green,.ansi-bright-green-bg{background-color:#007427}.ansi-yellow-fg{color:#ddb62b}.ansi-yellow-bg{background-color:#ddb62b}.ansi-yellow-intense-yellow,.ansi-bright-yellow-fg{color:#b27d12}.ansi-yellow-intense-yellow,.ansi-bright-yellow-bg{background-color:#b27d12}.ansi-blue-fg{color:#208ffb}.ansi-blue-bg{background-color:#208ffb}.ansi-blue-intense-blue,.ansi-bright-blue-fg{color:#0065ca}.ansi-blue-intense-blue,.ansi-bright-blue-bg{background-color:#0065ca}.ansi-magenta-fg{color:#d160c4}.ansi-magenta-bg{background-color:#d160c4}.ansi-magenta-intense-magenta,.ansi-bright-magenta-fg{color:#a03196}.ansi-magenta-intense-magenta,.ansi-bright-magenta-bg{background-color:#a03196}.ansi-cyan-fg{color:#60c6c8}.ansi-cyan-bg{background-color:#60c6c8}.ansi-cyan-intense-cyan,.ansi-bright-cyan-fg{color:#258f8f}.ansi-cyan-intense-cyan,.ansi-bright-cyan-bg{background-color:#258f8f}.ansi-white-fg{color:#c5c1b4}.ansi-white-bg{background-color:#c5c1b4}.ansi-white-intense-white,.ansi-bright-white-fg{color:#a1a6b2}.ansi-white-intense-white,.ansi-bright-white-bg{background-color:#a1a6b2}.ansi-default-inverse-fg{color:#fff}.ansi-default-inverse-bg{background-color:#000}.ansi-bold{font-weight:bold}.ansi-underline{text-decoration:underline}:root{--quarto-body-bg: #fff;--quarto-body-color: #343a40;--quarto-text-muted: #6c757d;--quarto-border-color: #dee2e6;--quarto-border-width: 1px;--quarto-border-radius: 0.25rem}table.gt_table{color:var(--quarto-body-color);font-size:1em;width:100%;background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_column_spanner_outer{color:var(--quarto-body-color);background-color:rgba(0,0,0,0);border-top-width:inherit;border-bottom-width:inherit;border-color:var(--quarto-border-color)}table.gt_table th.gt_col_heading{color:var(--quarto-body-color);font-weight:bold;background-color:rgba(0,0,0,0)}table.gt_table thead.gt_col_headings{border-bottom:1px solid currentColor;border-top-width:inherit;border-top-color:var(--quarto-border-color)}table.gt_table thead.gt_col_headings:not(:first-child){border-top-width:1px;border-top-color:var(--quarto-border-color)}table.gt_table td.gt_row{border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-width:0px}table.gt_table tbody.gt_table_body{border-top-width:1px;border-bottom-width:1px;border-bottom-color:var(--quarto-border-color);border-top-color:currentColor}div.columns{display:initial;gap:initial}div.column{display:inline-block;overflow-x:initial;vertical-align:top;width:50%}.code-annotation-tip-content{word-wrap:break-word}.code-annotation-container-hidden{display:none !important}dl.code-annotation-container-grid{display:grid;grid-template-columns:min-content auto}dl.code-annotation-container-grid dt{grid-column:1}dl.code-annotation-container-grid dd{grid-column:2}pre.sourceCode.code-annotation-code{padding-right:0}code.sourceCode .code-annotation-anchor{z-index:100;position:relative;float:right;background-color:rgba(0,0,0,0)}input[type=checkbox]{margin-right:.5ch}:root{--mermaid-bg-color: #fff;--mermaid-edge-color: #343a40;--mermaid-node-fg-color: #343a40;--mermaid-fg-color: #343a40;--mermaid-fg-color--lighter: #4b545c;--mermaid-fg-color--lightest: #626d78;--mermaid-font-family: Source Sans Pro, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--mermaid-label-bg-color: #fff;--mermaid-label-fg-color: #2780e3;--mermaid-node-bg-color: rgba(39, 128, 227, 0.1);--mermaid-node-fg-color: #343a40}@media print{:root{font-size:11pt}#quarto-sidebar,#TOC,.nav-page{display:none}.page-columns .content{grid-column-start:page-start}.fixed-top{position:relative}.panel-caption,.figure-caption,figcaption{color:#666}}.code-copy-button{position:absolute;top:0;right:0;border:0;margin-top:5px;margin-right:5px;background-color:rgba(0,0,0,0);z-index:3}.code-copy-button:focus{outline:none}.code-copy-button-tooltip{font-size:.75em}pre.sourceCode:hover>.code-copy-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}pre.sourceCode:hover>.code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}pre.sourceCode:hover>.code-copy-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}pre.sourceCode:hover>.code-copy-button-checked:hover>.bi::before{background-image:url('data:image/svg+xml,')}main ol ol,main ul ul,main ol ul,main ul ol{margin-bottom:1em}ul>li:not(:has(>p))>ul,ol>li:not(:has(>p))>ul,ul>li:not(:has(>p))>ol,ol>li:not(:has(>p))>ol{margin-bottom:0}ul>li:not(:has(>p))>ul>li:has(>p),ol>li:not(:has(>p))>ul>li:has(>p),ul>li:not(:has(>p))>ol>li:has(>p),ol>li:not(:has(>p))>ol>li:has(>p){margin-top:1rem}body{margin:0}main.page-columns>header>h1.title,main.page-columns>header>.title.h1{margin-bottom:0}@media(min-width: 992px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(850px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(850px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] 35px [page-end-inset page-end] 5fr [screen-end-inset] 1.5em}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset] 35px [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(500px, calc(850px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(850px - 3em)) [body-content-end] 3em [body-end] 50px [body-end-outset] minmax(0px, 250px) [page-end-inset] minmax(50px, 100px) [page-end] 1fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(800px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 175px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(800px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc(800px - 3em)) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(1000px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 100px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(1000px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(800px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc(750px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start] minmax(50px, 100px) [page-start-inset] 50px [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(500px, calc(1000px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(0px, 200px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 50px [page-start-inset] minmax(50px, 150px) [body-start-outset] 50px [body-start] 1.5em [body-content-start] minmax(450px, calc(750px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(50px, 150px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] minmax(25px, 50px) [page-start-inset] minmax(50px, 150px) [body-start-outset] minmax(25px, 50px) [body-start] 1.5em [body-content-start] minmax(500px, calc(800px - 3em)) [body-content-end] 1.5em [body-end] minmax(25px, 50px) [body-end-outset] minmax(50px, 150px) [page-end-inset] minmax(25px, 50px) [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 991.98px){body .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(800px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.fullcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(800px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.slimcontent:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(800px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.listing:not(.floating):not(.docked) .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset] 5fr [body-start] 1.5em [body-content-start] minmax(500px, calc(1250px - 3em)) [body-content-end body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(800px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start] 35px [page-start-inset] minmax(0px, 145px) [body-start-outset] 35px [body-start] 1.5em [body-content-start] minmax(450px, calc(800px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1.5em [body-content-start] minmax(500px, calc(750px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(750px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(1000px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(800px - 3em)) [body-content-end] 1.5em [body-end body-end-outset page-end-inset page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.docked.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(750px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.docked.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(500px, calc(750px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(25px, 50px) [page-end-inset] 50px [page-end] 5fr [screen-end-inset] 1.5em [screen-end]}body.floating.slimcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(750px - 3em)) [body-content-end] 1.5em [body-end] 35px [body-end-outset] minmax(75px, 145px) [page-end-inset] 35px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}body.floating.listing .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset] 5fr [page-start page-start-inset body-start-outset body-start] 1em [body-content-start] minmax(500px, calc(750px - 3em)) [body-content-end] 1.5em [body-end] 50px [body-end-outset] minmax(75px, 150px) [page-end-inset] 25px [page-end] 4fr [screen-end-inset] 1.5em [screen-end]}}@media(max-width: 767.98px){body .page-columns,body.fullcontent:not(.floating):not(.docked) .page-columns,body.slimcontent:not(.floating):not(.docked) .page-columns,body.docked .page-columns,body.docked.slimcontent .page-columns,body.docked.fullcontent .page-columns,body.floating .page-columns,body.floating.slimcontent .page-columns,body.floating.fullcontent .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}body:not(.floating):not(.docked) .page-columns.toc-left .page-columns{display:grid;gap:0;grid-template-columns:[screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end]}nav[role=doc-toc]{display:none}}body,.page-row-navigation{grid-template-rows:[page-top] max-content [contents-top] max-content [contents-bottom] max-content [page-bottom]}.page-rows-contents{grid-template-rows:[content-top] minmax(max-content, 1fr) [content-bottom] minmax(60px, max-content) [page-bottom]}.page-full{grid-column:screen-start/screen-end !important}.page-columns>*{grid-column:body-content-start/body-content-end}.page-columns.column-page>*{grid-column:page-start/page-end}.page-columns.column-page-left .page-columns.page-full>*,.page-columns.column-page-left>*{grid-column:page-start/body-content-end}.page-columns.column-page-right .page-columns.page-full>*,.page-columns.column-page-right>*{grid-column:body-content-start/page-end}.page-rows{grid-auto-rows:auto}.header{grid-column:screen-start/screen-end;grid-row:page-top/contents-top}#quarto-content{padding:0;grid-column:screen-start/screen-end;grid-row:contents-top/contents-bottom}body.floating .sidebar.sidebar-navigation{grid-column:page-start/body-start;grid-row:content-top/page-bottom}body.docked .sidebar.sidebar-navigation{grid-column:screen-start/body-start;grid-row:content-top/page-bottom}.sidebar.toc-left{grid-column:page-start/body-start;grid-row:content-top/page-bottom}.sidebar.margin-sidebar{grid-column:body-end/page-end;grid-row:content-top/page-bottom}.page-columns .content{grid-column:body-content-start/body-content-end;grid-row:content-top/content-bottom;align-content:flex-start}.page-columns .page-navigation{grid-column:body-content-start/body-content-end;grid-row:content-bottom/page-bottom}.page-columns .footer{grid-column:screen-start/screen-end;grid-row:contents-bottom/page-bottom}.page-columns .column-body{grid-column:body-content-start/body-content-end}.page-columns .column-body-fullbleed{grid-column:body-start/body-end}.page-columns .column-body-outset{grid-column:body-start-outset/body-end-outset;z-index:998;opacity:.999}.page-columns .column-body-outset table{background:#fff}.page-columns .column-body-outset-left{grid-column:body-start-outset/body-content-end;z-index:998;opacity:.999}.page-columns .column-body-outset-left table{background:#fff}.page-columns .column-body-outset-right{grid-column:body-content-start/body-end-outset;z-index:998;opacity:.999}.page-columns .column-body-outset-right table{background:#fff}.page-columns .column-page{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-page table{background:#fff}.page-columns .column-page-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.page-columns .column-page-inset table{background:#fff}.page-columns .column-page-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-page-inset-left table{background:#fff}.page-columns .column-page-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;opacity:.999}.page-columns .column-page-inset-right figcaption table{background:#fff}.page-columns .column-page-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-page-left table{background:#fff}.page-columns .column-page-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.page-columns .column-page-right figcaption table{background:#fff}#quarto-content.page-columns #quarto-margin-sidebar,#quarto-content.page-columns #quarto-sidebar{z-index:1}@media(max-width: 991.98px){#quarto-content.page-columns #quarto-margin-sidebar.collapse,#quarto-content.page-columns #quarto-sidebar.collapse,#quarto-content.page-columns #quarto-margin-sidebar.collapsing,#quarto-content.page-columns #quarto-sidebar.collapsing{z-index:1055}}#quarto-content.page-columns main.column-page,#quarto-content.page-columns main.column-page-right,#quarto-content.page-columns main.column-page-left{z-index:0}.page-columns .column-screen-inset{grid-column:screen-start-inset/screen-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:screen-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/screen-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:screen-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:screen-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/screen-end;z-index:998;opacity:.999}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:screen-start/screen-end;padding:1em;background:#f8f9fa;z-index:998;opacity:.999;margin-bottom:1em}.zindex-content{z-index:998;opacity:.999}.zindex-modal{z-index:1055;opacity:.999}.zindex-over-content{z-index:999;opacity:.999}img.img-fluid.column-screen,img.img-fluid.column-screen-inset-shaded,img.img-fluid.column-screen-inset,img.img-fluid.column-screen-inset-left,img.img-fluid.column-screen-inset-right,img.img-fluid.column-screen-left,img.img-fluid.column-screen-right{width:100%}@media(min-width: 992px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-end/page-end !important;z-index:998}.column-sidebar{grid-column:page-start/body-start !important;z-index:998}.column-leftmargin{grid-column:screen-start-inset/body-start !important;z-index:998}.no-row-height{height:1em;overflow:visible}}@media(max-width: 991.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-end/page-end !important;z-index:998}.no-row-height{height:1em;overflow:visible}.page-columns.page-full{overflow:visible}.page-columns.toc-left .margin-caption,.page-columns.toc-left div.aside,.page-columns.toc-left aside:not(.footnotes):not(.sidebar),.page-columns.toc-left .column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.page-columns.toc-left .no-row-height{height:initial;overflow:initial}}@media(max-width: 767.98px){.margin-caption,div.aside,aside:not(.footnotes):not(.sidebar),.column-margin{grid-column:body-content-start/body-content-end !important;z-index:998;opacity:.999}.no-row-height{height:initial;overflow:initial}#quarto-margin-sidebar{display:none}#quarto-sidebar-toc-left{display:none}.hidden-sm{display:none}}.panel-grid{display:grid;grid-template-rows:repeat(1, 1fr);grid-template-columns:repeat(24, 1fr);gap:1em}.panel-grid .g-col-1{grid-column:auto/span 1}.panel-grid .g-col-2{grid-column:auto/span 2}.panel-grid .g-col-3{grid-column:auto/span 3}.panel-grid .g-col-4{grid-column:auto/span 4}.panel-grid .g-col-5{grid-column:auto/span 5}.panel-grid .g-col-6{grid-column:auto/span 6}.panel-grid .g-col-7{grid-column:auto/span 7}.panel-grid .g-col-8{grid-column:auto/span 8}.panel-grid .g-col-9{grid-column:auto/span 9}.panel-grid .g-col-10{grid-column:auto/span 10}.panel-grid .g-col-11{grid-column:auto/span 11}.panel-grid .g-col-12{grid-column:auto/span 12}.panel-grid .g-col-13{grid-column:auto/span 13}.panel-grid .g-col-14{grid-column:auto/span 14}.panel-grid .g-col-15{grid-column:auto/span 15}.panel-grid .g-col-16{grid-column:auto/span 16}.panel-grid .g-col-17{grid-column:auto/span 17}.panel-grid .g-col-18{grid-column:auto/span 18}.panel-grid .g-col-19{grid-column:auto/span 19}.panel-grid .g-col-20{grid-column:auto/span 20}.panel-grid .g-col-21{grid-column:auto/span 21}.panel-grid .g-col-22{grid-column:auto/span 22}.panel-grid .g-col-23{grid-column:auto/span 23}.panel-grid .g-col-24{grid-column:auto/span 24}.panel-grid .g-start-1{grid-column-start:1}.panel-grid .g-start-2{grid-column-start:2}.panel-grid .g-start-3{grid-column-start:3}.panel-grid .g-start-4{grid-column-start:4}.panel-grid .g-start-5{grid-column-start:5}.panel-grid .g-start-6{grid-column-start:6}.panel-grid .g-start-7{grid-column-start:7}.panel-grid .g-start-8{grid-column-start:8}.panel-grid .g-start-9{grid-column-start:9}.panel-grid .g-start-10{grid-column-start:10}.panel-grid .g-start-11{grid-column-start:11}.panel-grid .g-start-12{grid-column-start:12}.panel-grid .g-start-13{grid-column-start:13}.panel-grid .g-start-14{grid-column-start:14}.panel-grid .g-start-15{grid-column-start:15}.panel-grid .g-start-16{grid-column-start:16}.panel-grid .g-start-17{grid-column-start:17}.panel-grid .g-start-18{grid-column-start:18}.panel-grid .g-start-19{grid-column-start:19}.panel-grid .g-start-20{grid-column-start:20}.panel-grid .g-start-21{grid-column-start:21}.panel-grid .g-start-22{grid-column-start:22}.panel-grid .g-start-23{grid-column-start:23}@media(min-width: 576px){.panel-grid .g-col-sm-1{grid-column:auto/span 1}.panel-grid .g-col-sm-2{grid-column:auto/span 2}.panel-grid .g-col-sm-3{grid-column:auto/span 3}.panel-grid .g-col-sm-4{grid-column:auto/span 4}.panel-grid .g-col-sm-5{grid-column:auto/span 5}.panel-grid .g-col-sm-6{grid-column:auto/span 6}.panel-grid .g-col-sm-7{grid-column:auto/span 7}.panel-grid .g-col-sm-8{grid-column:auto/span 8}.panel-grid .g-col-sm-9{grid-column:auto/span 9}.panel-grid .g-col-sm-10{grid-column:auto/span 10}.panel-grid .g-col-sm-11{grid-column:auto/span 11}.panel-grid .g-col-sm-12{grid-column:auto/span 12}.panel-grid .g-col-sm-13{grid-column:auto/span 13}.panel-grid .g-col-sm-14{grid-column:auto/span 14}.panel-grid .g-col-sm-15{grid-column:auto/span 15}.panel-grid .g-col-sm-16{grid-column:auto/span 16}.panel-grid .g-col-sm-17{grid-column:auto/span 17}.panel-grid .g-col-sm-18{grid-column:auto/span 18}.panel-grid .g-col-sm-19{grid-column:auto/span 19}.panel-grid .g-col-sm-20{grid-column:auto/span 20}.panel-grid .g-col-sm-21{grid-column:auto/span 21}.panel-grid .g-col-sm-22{grid-column:auto/span 22}.panel-grid .g-col-sm-23{grid-column:auto/span 23}.panel-grid .g-col-sm-24{grid-column:auto/span 24}.panel-grid .g-start-sm-1{grid-column-start:1}.panel-grid .g-start-sm-2{grid-column-start:2}.panel-grid .g-start-sm-3{grid-column-start:3}.panel-grid .g-start-sm-4{grid-column-start:4}.panel-grid .g-start-sm-5{grid-column-start:5}.panel-grid .g-start-sm-6{grid-column-start:6}.panel-grid .g-start-sm-7{grid-column-start:7}.panel-grid .g-start-sm-8{grid-column-start:8}.panel-grid .g-start-sm-9{grid-column-start:9}.panel-grid .g-start-sm-10{grid-column-start:10}.panel-grid .g-start-sm-11{grid-column-start:11}.panel-grid .g-start-sm-12{grid-column-start:12}.panel-grid .g-start-sm-13{grid-column-start:13}.panel-grid .g-start-sm-14{grid-column-start:14}.panel-grid .g-start-sm-15{grid-column-start:15}.panel-grid .g-start-sm-16{grid-column-start:16}.panel-grid .g-start-sm-17{grid-column-start:17}.panel-grid .g-start-sm-18{grid-column-start:18}.panel-grid .g-start-sm-19{grid-column-start:19}.panel-grid .g-start-sm-20{grid-column-start:20}.panel-grid .g-start-sm-21{grid-column-start:21}.panel-grid .g-start-sm-22{grid-column-start:22}.panel-grid .g-start-sm-23{grid-column-start:23}}@media(min-width: 768px){.panel-grid .g-col-md-1{grid-column:auto/span 1}.panel-grid .g-col-md-2{grid-column:auto/span 2}.panel-grid .g-col-md-3{grid-column:auto/span 3}.panel-grid .g-col-md-4{grid-column:auto/span 4}.panel-grid .g-col-md-5{grid-column:auto/span 5}.panel-grid .g-col-md-6{grid-column:auto/span 6}.panel-grid .g-col-md-7{grid-column:auto/span 7}.panel-grid .g-col-md-8{grid-column:auto/span 8}.panel-grid .g-col-md-9{grid-column:auto/span 9}.panel-grid .g-col-md-10{grid-column:auto/span 10}.panel-grid .g-col-md-11{grid-column:auto/span 11}.panel-grid .g-col-md-12{grid-column:auto/span 12}.panel-grid .g-col-md-13{grid-column:auto/span 13}.panel-grid .g-col-md-14{grid-column:auto/span 14}.panel-grid .g-col-md-15{grid-column:auto/span 15}.panel-grid .g-col-md-16{grid-column:auto/span 16}.panel-grid .g-col-md-17{grid-column:auto/span 17}.panel-grid .g-col-md-18{grid-column:auto/span 18}.panel-grid .g-col-md-19{grid-column:auto/span 19}.panel-grid .g-col-md-20{grid-column:auto/span 20}.panel-grid .g-col-md-21{grid-column:auto/span 21}.panel-grid .g-col-md-22{grid-column:auto/span 22}.panel-grid .g-col-md-23{grid-column:auto/span 23}.panel-grid .g-col-md-24{grid-column:auto/span 24}.panel-grid .g-start-md-1{grid-column-start:1}.panel-grid .g-start-md-2{grid-column-start:2}.panel-grid .g-start-md-3{grid-column-start:3}.panel-grid .g-start-md-4{grid-column-start:4}.panel-grid .g-start-md-5{grid-column-start:5}.panel-grid .g-start-md-6{grid-column-start:6}.panel-grid .g-start-md-7{grid-column-start:7}.panel-grid .g-start-md-8{grid-column-start:8}.panel-grid .g-start-md-9{grid-column-start:9}.panel-grid .g-start-md-10{grid-column-start:10}.panel-grid .g-start-md-11{grid-column-start:11}.panel-grid .g-start-md-12{grid-column-start:12}.panel-grid .g-start-md-13{grid-column-start:13}.panel-grid .g-start-md-14{grid-column-start:14}.panel-grid .g-start-md-15{grid-column-start:15}.panel-grid .g-start-md-16{grid-column-start:16}.panel-grid .g-start-md-17{grid-column-start:17}.panel-grid .g-start-md-18{grid-column-start:18}.panel-grid .g-start-md-19{grid-column-start:19}.panel-grid .g-start-md-20{grid-column-start:20}.panel-grid .g-start-md-21{grid-column-start:21}.panel-grid .g-start-md-22{grid-column-start:22}.panel-grid .g-start-md-23{grid-column-start:23}}@media(min-width: 992px){.panel-grid .g-col-lg-1{grid-column:auto/span 1}.panel-grid .g-col-lg-2{grid-column:auto/span 2}.panel-grid .g-col-lg-3{grid-column:auto/span 3}.panel-grid .g-col-lg-4{grid-column:auto/span 4}.panel-grid .g-col-lg-5{grid-column:auto/span 5}.panel-grid .g-col-lg-6{grid-column:auto/span 6}.panel-grid .g-col-lg-7{grid-column:auto/span 7}.panel-grid .g-col-lg-8{grid-column:auto/span 8}.panel-grid .g-col-lg-9{grid-column:auto/span 9}.panel-grid .g-col-lg-10{grid-column:auto/span 10}.panel-grid .g-col-lg-11{grid-column:auto/span 11}.panel-grid .g-col-lg-12{grid-column:auto/span 12}.panel-grid .g-col-lg-13{grid-column:auto/span 13}.panel-grid .g-col-lg-14{grid-column:auto/span 14}.panel-grid .g-col-lg-15{grid-column:auto/span 15}.panel-grid .g-col-lg-16{grid-column:auto/span 16}.panel-grid .g-col-lg-17{grid-column:auto/span 17}.panel-grid .g-col-lg-18{grid-column:auto/span 18}.panel-grid .g-col-lg-19{grid-column:auto/span 19}.panel-grid .g-col-lg-20{grid-column:auto/span 20}.panel-grid .g-col-lg-21{grid-column:auto/span 21}.panel-grid .g-col-lg-22{grid-column:auto/span 22}.panel-grid .g-col-lg-23{grid-column:auto/span 23}.panel-grid .g-col-lg-24{grid-column:auto/span 24}.panel-grid .g-start-lg-1{grid-column-start:1}.panel-grid .g-start-lg-2{grid-column-start:2}.panel-grid .g-start-lg-3{grid-column-start:3}.panel-grid .g-start-lg-4{grid-column-start:4}.panel-grid .g-start-lg-5{grid-column-start:5}.panel-grid .g-start-lg-6{grid-column-start:6}.panel-grid .g-start-lg-7{grid-column-start:7}.panel-grid .g-start-lg-8{grid-column-start:8}.panel-grid .g-start-lg-9{grid-column-start:9}.panel-grid .g-start-lg-10{grid-column-start:10}.panel-grid .g-start-lg-11{grid-column-start:11}.panel-grid .g-start-lg-12{grid-column-start:12}.panel-grid .g-start-lg-13{grid-column-start:13}.panel-grid .g-start-lg-14{grid-column-start:14}.panel-grid .g-start-lg-15{grid-column-start:15}.panel-grid .g-start-lg-16{grid-column-start:16}.panel-grid .g-start-lg-17{grid-column-start:17}.panel-grid .g-start-lg-18{grid-column-start:18}.panel-grid .g-start-lg-19{grid-column-start:19}.panel-grid .g-start-lg-20{grid-column-start:20}.panel-grid .g-start-lg-21{grid-column-start:21}.panel-grid .g-start-lg-22{grid-column-start:22}.panel-grid .g-start-lg-23{grid-column-start:23}}@media(min-width: 1200px){.panel-grid .g-col-xl-1{grid-column:auto/span 1}.panel-grid .g-col-xl-2{grid-column:auto/span 2}.panel-grid .g-col-xl-3{grid-column:auto/span 3}.panel-grid .g-col-xl-4{grid-column:auto/span 4}.panel-grid .g-col-xl-5{grid-column:auto/span 5}.panel-grid .g-col-xl-6{grid-column:auto/span 6}.panel-grid .g-col-xl-7{grid-column:auto/span 7}.panel-grid .g-col-xl-8{grid-column:auto/span 8}.panel-grid .g-col-xl-9{grid-column:auto/span 9}.panel-grid .g-col-xl-10{grid-column:auto/span 10}.panel-grid .g-col-xl-11{grid-column:auto/span 11}.panel-grid .g-col-xl-12{grid-column:auto/span 12}.panel-grid .g-col-xl-13{grid-column:auto/span 13}.panel-grid .g-col-xl-14{grid-column:auto/span 14}.panel-grid .g-col-xl-15{grid-column:auto/span 15}.panel-grid .g-col-xl-16{grid-column:auto/span 16}.panel-grid .g-col-xl-17{grid-column:auto/span 17}.panel-grid .g-col-xl-18{grid-column:auto/span 18}.panel-grid .g-col-xl-19{grid-column:auto/span 19}.panel-grid .g-col-xl-20{grid-column:auto/span 20}.panel-grid .g-col-xl-21{grid-column:auto/span 21}.panel-grid .g-col-xl-22{grid-column:auto/span 22}.panel-grid .g-col-xl-23{grid-column:auto/span 23}.panel-grid .g-col-xl-24{grid-column:auto/span 24}.panel-grid .g-start-xl-1{grid-column-start:1}.panel-grid .g-start-xl-2{grid-column-start:2}.panel-grid .g-start-xl-3{grid-column-start:3}.panel-grid .g-start-xl-4{grid-column-start:4}.panel-grid .g-start-xl-5{grid-column-start:5}.panel-grid .g-start-xl-6{grid-column-start:6}.panel-grid .g-start-xl-7{grid-column-start:7}.panel-grid .g-start-xl-8{grid-column-start:8}.panel-grid .g-start-xl-9{grid-column-start:9}.panel-grid .g-start-xl-10{grid-column-start:10}.panel-grid .g-start-xl-11{grid-column-start:11}.panel-grid .g-start-xl-12{grid-column-start:12}.panel-grid .g-start-xl-13{grid-column-start:13}.panel-grid .g-start-xl-14{grid-column-start:14}.panel-grid .g-start-xl-15{grid-column-start:15}.panel-grid .g-start-xl-16{grid-column-start:16}.panel-grid .g-start-xl-17{grid-column-start:17}.panel-grid .g-start-xl-18{grid-column-start:18}.panel-grid .g-start-xl-19{grid-column-start:19}.panel-grid .g-start-xl-20{grid-column-start:20}.panel-grid .g-start-xl-21{grid-column-start:21}.panel-grid .g-start-xl-22{grid-column-start:22}.panel-grid .g-start-xl-23{grid-column-start:23}}@media(min-width: 1400px){.panel-grid .g-col-xxl-1{grid-column:auto/span 1}.panel-grid .g-col-xxl-2{grid-column:auto/span 2}.panel-grid .g-col-xxl-3{grid-column:auto/span 3}.panel-grid .g-col-xxl-4{grid-column:auto/span 4}.panel-grid .g-col-xxl-5{grid-column:auto/span 5}.panel-grid .g-col-xxl-6{grid-column:auto/span 6}.panel-grid .g-col-xxl-7{grid-column:auto/span 7}.panel-grid .g-col-xxl-8{grid-column:auto/span 8}.panel-grid .g-col-xxl-9{grid-column:auto/span 9}.panel-grid .g-col-xxl-10{grid-column:auto/span 10}.panel-grid .g-col-xxl-11{grid-column:auto/span 11}.panel-grid .g-col-xxl-12{grid-column:auto/span 12}.panel-grid .g-col-xxl-13{grid-column:auto/span 13}.panel-grid .g-col-xxl-14{grid-column:auto/span 14}.panel-grid .g-col-xxl-15{grid-column:auto/span 15}.panel-grid .g-col-xxl-16{grid-column:auto/span 16}.panel-grid .g-col-xxl-17{grid-column:auto/span 17}.panel-grid .g-col-xxl-18{grid-column:auto/span 18}.panel-grid .g-col-xxl-19{grid-column:auto/span 19}.panel-grid .g-col-xxl-20{grid-column:auto/span 20}.panel-grid .g-col-xxl-21{grid-column:auto/span 21}.panel-grid .g-col-xxl-22{grid-column:auto/span 22}.panel-grid .g-col-xxl-23{grid-column:auto/span 23}.panel-grid .g-col-xxl-24{grid-column:auto/span 24}.panel-grid .g-start-xxl-1{grid-column-start:1}.panel-grid .g-start-xxl-2{grid-column-start:2}.panel-grid .g-start-xxl-3{grid-column-start:3}.panel-grid .g-start-xxl-4{grid-column-start:4}.panel-grid .g-start-xxl-5{grid-column-start:5}.panel-grid .g-start-xxl-6{grid-column-start:6}.panel-grid .g-start-xxl-7{grid-column-start:7}.panel-grid .g-start-xxl-8{grid-column-start:8}.panel-grid .g-start-xxl-9{grid-column-start:9}.panel-grid .g-start-xxl-10{grid-column-start:10}.panel-grid .g-start-xxl-11{grid-column-start:11}.panel-grid .g-start-xxl-12{grid-column-start:12}.panel-grid .g-start-xxl-13{grid-column-start:13}.panel-grid .g-start-xxl-14{grid-column-start:14}.panel-grid .g-start-xxl-15{grid-column-start:15}.panel-grid .g-start-xxl-16{grid-column-start:16}.panel-grid .g-start-xxl-17{grid-column-start:17}.panel-grid .g-start-xxl-18{grid-column-start:18}.panel-grid .g-start-xxl-19{grid-column-start:19}.panel-grid .g-start-xxl-20{grid-column-start:20}.panel-grid .g-start-xxl-21{grid-column-start:21}.panel-grid .g-start-xxl-22{grid-column-start:22}.panel-grid .g-start-xxl-23{grid-column-start:23}}main{margin-top:1em;margin-bottom:1em}h1,.h1,h2,.h2{color:inherit;margin-top:2rem;margin-bottom:1rem;font-weight:600}h1.title,.title.h1{margin-top:0}main.content>section:first-of-type>h2:first-child,main.content>section:first-of-type>.h2:first-child{margin-top:0}h2,.h2{border-bottom:1px solid #dee2e6;padding-bottom:.5rem}h3,.h3{font-weight:600}h3,.h3,h4,.h4{opacity:.9;margin-top:1.5rem}h5,.h5,h6,.h6{opacity:.9}.header-section-number{color:#6d7a86}.nav-link.active .header-section-number{color:inherit}mark,.mark{padding:0em}.panel-caption,.figure-caption,.subfigure-caption,.table-caption,figcaption,caption{font-size:.9rem;color:#6d7a86}.quarto-layout-cell[data-ref-parent] caption{color:#6d7a86}.column-margin figcaption,.margin-caption,div.aside,aside,.column-margin{color:#6d7a86;font-size:.825rem}.panel-caption.margin-caption{text-align:inherit}.column-margin.column-container p{margin-bottom:0}.column-margin.column-container>*:not(.collapse):first-child{padding-bottom:.5em;display:block}.column-margin.column-container>*:not(.collapse):not(:first-child){padding-top:.5em;padding-bottom:.5em;display:block}.column-margin.column-container>*.collapse:not(.show){display:none}@media(min-width: 768px){.column-margin.column-container .callout-margin-content:first-child{margin-top:4.5em}.column-margin.column-container .callout-margin-content-simple:first-child{margin-top:3.5em}}.margin-caption>*{padding-top:.5em;padding-bottom:.5em}@media(max-width: 767.98px){.quarto-layout-row{flex-direction:column}}.nav-tabs .nav-item{margin-top:1px;cursor:pointer}.tab-content{margin-top:0px;border-left:#dee2e6 1px solid;border-right:#dee2e6 1px solid;border-bottom:#dee2e6 1px solid;margin-left:0;padding:1em;margin-bottom:1em}@media(max-width: 767.98px){.layout-sidebar{margin-left:0;margin-right:0}}.panel-sidebar,.panel-sidebar .form-control,.panel-input,.panel-input .form-control,.selectize-dropdown{font-size:.9rem}.panel-sidebar .form-control,.panel-input .form-control{padding-top:.1rem}.tab-pane div.sourceCode{margin-top:0px}.tab-pane>p{padding-top:0}.tab-pane>p:nth-child(1){padding-top:0}.tab-pane>p:last-child{margin-bottom:0}.tab-pane>pre:last-child{margin-bottom:0}.tab-content>.tab-pane:not(.active){display:none !important}div.sourceCode{background-color:rgba(233,236,239,.65);border:1px solid rgba(233,236,239,.65);border-radius:.25rem}pre.sourceCode{background-color:rgba(0,0,0,0)}pre.sourceCode{border:none;font-size:.875em;overflow:visible !important;padding:.4em}.callout pre.sourceCode{padding-left:0}div.sourceCode{overflow-y:hidden}.callout div.sourceCode{margin-left:initial}.blockquote{font-size:inherit;padding-left:1rem;padding-right:1.5rem;color:#6d7a86}.blockquote h1:first-child,.blockquote .h1:first-child,.blockquote h2:first-child,.blockquote .h2:first-child,.blockquote h3:first-child,.blockquote .h3:first-child,.blockquote h4:first-child,.blockquote .h4:first-child,.blockquote h5:first-child,.blockquote .h5:first-child{margin-top:0}pre{background-color:initial;padding:initial;border:initial}p pre code:not(.sourceCode),li pre code:not(.sourceCode),pre code:not(.sourceCode){background-color:initial}p code:not(.sourceCode),li code:not(.sourceCode),td code:not(.sourceCode){background-color:#f8f9fa;padding:.2em}nav p code:not(.sourceCode),nav li code:not(.sourceCode),nav td code:not(.sourceCode){background-color:rgba(0,0,0,0);padding:0}td code:not(.sourceCode){white-space:pre-wrap}#quarto-embedded-source-code-modal>.modal-dialog{max-width:1000px;padding-left:1.75rem;padding-right:1.75rem}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body{padding:0}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-body div.sourceCode{margin:0;padding:.2rem .2rem;border-radius:0px;border:none}#quarto-embedded-source-code-modal>.modal-dialog>.modal-content>.modal-header{padding:.7rem}.code-tools-button{font-size:1rem;padding:.15rem .15rem;margin-left:5px;color:#6c757d;background-color:rgba(0,0,0,0);transition:initial;cursor:pointer}.code-tools-button>.bi::before{display:inline-block;height:1rem;width:1rem;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:1rem 1rem}.code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button>.bi::before{background-image:url('data:image/svg+xml,')}#quarto-embedded-source-code-modal .code-copy-button-checked>.bi::before{background-image:url('data:image/svg+xml,')}.sidebar{will-change:top;transition:top 200ms linear;position:sticky;overflow-y:auto;padding-top:1.2em;max-height:100vh}.sidebar.toc-left,.sidebar.margin-sidebar{top:0px;padding-top:1em}.sidebar.quarto-banner-title-block-sidebar>*{padding-top:1.65em}figure .quarto-notebook-link{margin-top:.5em}.quarto-notebook-link{font-size:.75em;color:#6c757d;margin-bottom:1em;text-decoration:none;display:block}.quarto-notebook-link:hover{text-decoration:underline;color:#2761e3}.quarto-notebook-link::before{display:inline-block;height:.75rem;width:.75rem;margin-bottom:0em;margin-right:.25em;content:"";vertical-align:-0.125em;background-image:url('data:image/svg+xml,');background-repeat:no-repeat;background-size:.75rem .75rem}.toc-actions i.bi,.quarto-code-links i.bi,.quarto-other-links i.bi,.quarto-alternate-notebooks i.bi,.quarto-alternate-formats i.bi{margin-right:.4em;font-size:.8rem}.quarto-other-links-text-target .quarto-code-links i.bi,.quarto-other-links-text-target .quarto-other-links i.bi{margin-right:.2em}.quarto-other-formats-text-target .quarto-alternate-formats i.bi{margin-right:.1em}.toc-actions i.bi.empty,.quarto-code-links i.bi.empty,.quarto-other-links i.bi.empty,.quarto-alternate-notebooks i.bi.empty,.quarto-alternate-formats i.bi.empty{padding-left:1em}.quarto-notebook h2,.quarto-notebook .h2{border-bottom:none}.quarto-notebook .cell-container{display:flex}.quarto-notebook .cell-container .cell{flex-grow:4}.quarto-notebook .cell-container .cell-decorator{padding-top:1.5em;padding-right:1em;text-align:right}.quarto-notebook .cell-container.code-fold .cell-decorator{padding-top:3em}.quarto-notebook .cell-code code{white-space:pre-wrap}.quarto-notebook .cell .cell-output-stderr pre code,.quarto-notebook .cell .cell-output-stdout pre code{white-space:pre-wrap;overflow-wrap:anywhere}.toc-actions,.quarto-alternate-formats,.quarto-other-links,.quarto-code-links,.quarto-alternate-notebooks{padding-left:0em}.sidebar .toc-actions a,.sidebar .quarto-alternate-formats a,.sidebar .quarto-other-links a,.sidebar .quarto-code-links a,.sidebar .quarto-alternate-notebooks a,.sidebar nav[role=doc-toc] a{text-decoration:none}.sidebar .toc-actions a:hover,.sidebar .quarto-other-links a:hover,.sidebar .quarto-code-links a:hover,.sidebar .quarto-alternate-formats a:hover,.sidebar .quarto-alternate-notebooks a:hover{color:#2761e3}.sidebar .toc-actions h2,.sidebar .toc-actions .h2,.sidebar .quarto-code-links h2,.sidebar .quarto-code-links .h2,.sidebar .quarto-other-links h2,.sidebar .quarto-other-links .h2,.sidebar .quarto-alternate-notebooks h2,.sidebar .quarto-alternate-notebooks .h2,.sidebar .quarto-alternate-formats h2,.sidebar .quarto-alternate-formats .h2,.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-weight:500;margin-bottom:.2rem;margin-top:.3rem;font-family:inherit;border-bottom:0;padding-bottom:0;padding-top:0px}.sidebar .toc-actions>h2,.sidebar .toc-actions>.h2,.sidebar .quarto-code-links>h2,.sidebar .quarto-code-links>.h2,.sidebar .quarto-other-links>h2,.sidebar .quarto-other-links>.h2,.sidebar .quarto-alternate-notebooks>h2,.sidebar .quarto-alternate-notebooks>.h2,.sidebar .quarto-alternate-formats>h2,.sidebar .quarto-alternate-formats>.h2{font-size:.8rem}.sidebar nav[role=doc-toc]>h2,.sidebar nav[role=doc-toc]>.h2{font-size:.875rem}.sidebar nav[role=doc-toc]>ul a{border-left:1px solid #e9ecef;padding-left:.6rem}.sidebar .toc-actions h2>ul a,.sidebar .toc-actions .h2>ul a,.sidebar .quarto-code-links h2>ul a,.sidebar .quarto-code-links .h2>ul a,.sidebar .quarto-other-links h2>ul a,.sidebar .quarto-other-links .h2>ul a,.sidebar .quarto-alternate-notebooks h2>ul a,.sidebar .quarto-alternate-notebooks .h2>ul a,.sidebar .quarto-alternate-formats h2>ul a,.sidebar .quarto-alternate-formats .h2>ul a{border-left:none;padding-left:.6rem}.sidebar .toc-actions ul a:empty,.sidebar .quarto-code-links ul a:empty,.sidebar .quarto-other-links ul a:empty,.sidebar .quarto-alternate-notebooks ul a:empty,.sidebar .quarto-alternate-formats ul a:empty,.sidebar nav[role=doc-toc]>ul a:empty{display:none}.sidebar .toc-actions ul,.sidebar .quarto-code-links ul,.sidebar .quarto-other-links ul,.sidebar .quarto-alternate-notebooks ul,.sidebar .quarto-alternate-formats ul{padding-left:0;list-style:none}.sidebar nav[role=doc-toc] ul{list-style:none;padding-left:0;list-style:none}.sidebar nav[role=doc-toc]>ul{margin-left:.45em}.quarto-margin-sidebar nav[role=doc-toc]{padding-left:.5em}.sidebar .toc-actions>ul,.sidebar .quarto-code-links>ul,.sidebar .quarto-other-links>ul,.sidebar .quarto-alternate-notebooks>ul,.sidebar .quarto-alternate-formats>ul{font-size:.8rem}.sidebar nav[role=doc-toc]>ul{font-size:.875rem}.sidebar .toc-actions ul li a,.sidebar .quarto-code-links ul li a,.sidebar .quarto-other-links ul li a,.sidebar .quarto-alternate-notebooks ul li a,.sidebar .quarto-alternate-formats ul li a,.sidebar nav[role=doc-toc]>ul li a{line-height:1.1rem;padding-bottom:.2rem;padding-top:.2rem;color:inherit}.sidebar nav[role=doc-toc] ul>li>ul>li>a{padding-left:1.2em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>a{padding-left:2.4em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>a{padding-left:3.6em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:4.8em}.sidebar nav[role=doc-toc] ul>li>ul>li>ul>li>ul>li>ul>li>ul>li>a{padding-left:6em}.sidebar nav[role=doc-toc] ul>li>a.active,.sidebar nav[role=doc-toc] ul>li>ul>li>a.active{border-left:1px solid #2761e3;color:#2761e3 !important}.sidebar nav[role=doc-toc] ul>li>a:hover,.sidebar nav[role=doc-toc] ul>li>ul>li>a:hover{color:#2761e3 !important}kbd,.kbd{color:#343a40;background-color:#f8f9fa;border:1px solid;border-radius:5px;border-color:#dee2e6}.quarto-appendix-contents div.hanging-indent{margin-left:0em}.quarto-appendix-contents div.hanging-indent div.csl-entry{margin-left:1em;text-indent:-1em}.citation a,.footnote-ref{text-decoration:none}.footnotes ol{padding-left:1em}.tippy-content>*{margin-bottom:.7em}.tippy-content>*:last-child{margin-bottom:0}.callout{margin-top:1.25rem;margin-bottom:1.25rem;border-radius:.25rem;overflow-wrap:break-word}.callout .callout-title-container{overflow-wrap:anywhere}.callout.callout-style-simple{padding:.4em .7em;border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout.callout-style-default{border-left:5px solid;border-right:1px solid #dee2e6;border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}.callout .callout-body-container{flex-grow:1}.callout.callout-style-simple .callout-body{font-size:.9rem;font-weight:400}.callout.callout-style-default .callout-body{font-size:.9rem;font-weight:400}.callout:not(.no-icon).callout-titled.callout-style-simple .callout-body{padding-left:1.6em}.callout.callout-titled>.callout-header{padding-top:.2em;margin-bottom:-0.2em}.callout.callout-style-simple>div.callout-header{border-bottom:none;font-size:.9rem;font-weight:600;opacity:75%}.callout.callout-style-default>div.callout-header{border-bottom:none;font-weight:600;opacity:85%;font-size:.9rem;padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body{padding-left:.5em;padding-right:.5em}.callout.callout-style-default .callout-body>:first-child{padding-top:.5rem;margin-top:0}.callout>div.callout-header[data-bs-toggle=collapse]{cursor:pointer}.callout.callout-style-default .callout-header[aria-expanded=false],.callout.callout-style-default .callout-header[aria-expanded=true]{padding-top:0px;margin-bottom:0px;align-items:center}.callout.callout-titled .callout-body>:last-child:not(.sourceCode),.callout.callout-titled .callout-body>div>:last-child:not(.sourceCode){padding-bottom:.5rem;margin-bottom:0}.callout:not(.callout-titled) .callout-body>:first-child,.callout:not(.callout-titled) .callout-body>div>:first-child{margin-top:.25rem}.callout:not(.callout-titled) .callout-body>:last-child,.callout:not(.callout-titled) .callout-body>div>:last-child{margin-bottom:.2rem}.callout.callout-style-simple .callout-icon::before,.callout.callout-style-simple .callout-toggle::before{height:1rem;width:1rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.callout.callout-style-default .callout-icon::before,.callout.callout-style-default .callout-toggle::before{height:.9rem;width:.9rem;display:inline-block;content:"";background-repeat:no-repeat;background-size:.9rem .9rem}.callout.callout-style-default .callout-toggle::before{margin-top:5px}.callout .callout-btn-toggle .callout-toggle::before{transition:transform .2s linear}.callout .callout-header[aria-expanded=false] .callout-toggle::before{transform:rotate(-90deg)}.callout .callout-header[aria-expanded=true] .callout-toggle::before{transform:none}.callout.callout-style-simple:not(.no-icon) div.callout-icon-container{padding-top:.2em;padding-right:.55em}.callout.callout-style-default:not(.no-icon) div.callout-icon-container{padding-top:.1em;padding-right:.35em}.callout.callout-style-default:not(.no-icon) div.callout-title-container{margin-top:-1px}.callout.callout-style-default.callout-caution:not(.no-icon) div.callout-icon-container{padding-top:.3em;padding-right:.35em}.callout>.callout-body>.callout-icon-container>.no-icon,.callout>.callout-header>.callout-icon-container>.no-icon{display:none}div.callout.callout{border-left-color:#6c757d}div.callout.callout-style-default>.callout-header{background-color:#6c757d}div.callout-note.callout{border-left-color:#2780e3}div.callout-note.callout-style-default>.callout-header{background-color:#e9f2fc}div.callout-note:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-note .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-tip.callout{border-left-color:#3fb618}div.callout-tip.callout-style-default>.callout-header{background-color:#ecf8e8}div.callout-tip:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-tip .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-warning.callout{border-left-color:#ff7518}div.callout-warning.callout-style-default>.callout-header{background-color:#fff1e8}div.callout-warning:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-warning .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-caution.callout{border-left-color:#f0ad4e}div.callout-caution.callout-style-default>.callout-header{background-color:#fef7ed}div.callout-caution:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-caution .callout-toggle::before{background-image:url('data:image/svg+xml,')}div.callout-important.callout{border-left-color:#ff0039}div.callout-important.callout-style-default>.callout-header{background-color:#ffe6eb}div.callout-important:not(.callout-titled) .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important.callout-titled .callout-icon::before{background-image:url('data:image/svg+xml,');}div.callout-important .callout-toggle::before{background-image:url('data:image/svg+xml,')}.quarto-toggle-container{display:flex;align-items:center}.quarto-reader-toggle .bi::before,.quarto-color-scheme-toggle .bi::before{display:inline-block;height:1rem;width:1rem;content:"";background-repeat:no-repeat;background-size:1rem 1rem}.sidebar-navigation{padding-left:20px}.navbar{background-color:#2780e3;color:#fdfeff}.navbar .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.navbar .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle:not(.alternate) .bi::before{background-image:url('data:image/svg+xml,')}.sidebar-navigation .quarto-color-scheme-toggle.alternate .bi::before{background-image:url('data:image/svg+xml,')}.quarto-sidebar-toggle{border-color:#dee2e6;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-style:solid;border-width:1px;overflow:hidden;border-top-width:0px;padding-top:0px !important}.quarto-sidebar-toggle-title{cursor:pointer;padding-bottom:2px;margin-left:.25em;text-align:center;font-weight:400;font-size:.775em}#quarto-content .quarto-sidebar-toggle{background:#fafafa}#quarto-content .quarto-sidebar-toggle-title{color:#343a40}.quarto-sidebar-toggle-icon{color:#dee2e6;margin-right:.5em;float:right;transition:transform .2s ease}.quarto-sidebar-toggle-icon::before{padding-top:5px}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-icon{transform:rotate(-180deg)}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-title{border-bottom:solid #dee2e6 1px}.quarto-sidebar-toggle-contents{background-color:#fff;padding-right:10px;padding-left:10px;margin-top:0px !important;transition:max-height .5s ease}.quarto-sidebar-toggle.expanded .quarto-sidebar-toggle-contents{padding-top:1em;padding-bottom:10px}@media(max-width: 767.98px){.sidebar-menu-container{padding-bottom:5em}}.quarto-sidebar-toggle:not(.expanded) .quarto-sidebar-toggle-contents{padding-top:0px !important;padding-bottom:0px}nav[role=doc-toc]{z-index:1020}#quarto-sidebar>*,nav[role=doc-toc]>*{transition:opacity .1s ease,border .1s ease}#quarto-sidebar.slow>*,nav[role=doc-toc].slow>*{transition:opacity .4s ease,border .4s ease}.quarto-color-scheme-toggle:not(.alternate).top-right .bi::before{background-image:url('data:image/svg+xml,')}.quarto-color-scheme-toggle.alternate.top-right .bi::before{background-image:url('data:image/svg+xml,')}#quarto-appendix.default{border-top:1px solid #dee2e6}#quarto-appendix.default{background-color:#fff;padding-top:1.5em;margin-top:2em;z-index:998}#quarto-appendix.default .quarto-appendix-heading{margin-top:0;line-height:1.4em;font-weight:600;opacity:.9;border-bottom:none;margin-bottom:0}#quarto-appendix.default .footnotes ol,#quarto-appendix.default .footnotes ol li>p:last-of-type,#quarto-appendix.default .quarto-appendix-contents>p:last-of-type{margin-bottom:0}#quarto-appendix.default .footnotes ol{margin-left:.5em}#quarto-appendix.default .quarto-appendix-secondary-label{margin-bottom:.4em}#quarto-appendix.default .quarto-appendix-bibtex{font-size:.7em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-bibtex code.sourceCode{white-space:pre-wrap}#quarto-appendix.default .quarto-appendix-citeas{font-size:.9em;padding:1em;border:solid 1px #dee2e6;margin-bottom:1em}#quarto-appendix.default .quarto-appendix-heading{font-size:1em !important}#quarto-appendix.default *[role=doc-endnotes]>ol,#quarto-appendix.default .quarto-appendix-contents>*:not(h2):not(.h2){font-size:.9em}#quarto-appendix.default section{padding-bottom:1.5em}#quarto-appendix.default section *[role=doc-endnotes],#quarto-appendix.default section>*:not(a){opacity:.9;word-wrap:break-word}.btn.btn-quarto,div.cell-output-display .btn-quarto{--bs-btn-color: #cacccd;--bs-btn-bg: #343a40;--bs-btn-border-color: #343a40;--bs-btn-hover-color: #cacccd;--bs-btn-hover-bg: #52585d;--bs-btn-hover-border-color: #484e53;--bs-btn-focus-shadow-rgb: 75, 80, 85;--bs-btn-active-color: #fff;--bs-btn-active-bg: #5d6166;--bs-btn-active-border-color: #484e53;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #343a40;--bs-btn-disabled-border-color: #343a40}nav.quarto-secondary-nav.color-navbar{background-color:#2780e3;color:#fdfeff}nav.quarto-secondary-nav.color-navbar h1,nav.quarto-secondary-nav.color-navbar .h1,nav.quarto-secondary-nav.color-navbar .quarto-btn-toggle{color:#fdfeff}@media(max-width: 991.98px){body.nav-sidebar .quarto-title-banner{margin-bottom:0;padding-bottom:1em}body.nav-sidebar #title-block-header{margin-block-end:0}}p.subtitle{margin-top:.25em;margin-bottom:.5em}code a:any-link{color:inherit;text-decoration-color:#6c757d}/*! light */div.observablehq table thead tr th{background-color:var(--bs-body-bg)}input,button,select,optgroup,textarea{background-color:var(--bs-body-bg)}.code-annotated .code-copy-button{margin-right:1.25em;margin-top:0;padding-bottom:0;padding-top:3px}.code-annotation-gutter-bg{background-color:#fff}.code-annotation-gutter{background-color:rgba(233,236,239,.65)}.code-annotation-gutter,.code-annotation-gutter-bg{height:100%;width:calc(20px + .5em);position:absolute;top:0;right:0}dl.code-annotation-container-grid dt{margin-right:1em;margin-top:.25rem}dl.code-annotation-container-grid dt{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:#4b545c;border:solid #4b545c 1px;border-radius:50%;height:22px;width:22px;line-height:22px;font-size:11px;text-align:center;vertical-align:middle;text-decoration:none}dl.code-annotation-container-grid dt[data-target-cell]{cursor:pointer}dl.code-annotation-container-grid dt[data-target-cell].code-annotation-active{color:#fff;border:solid #aaa 1px;background-color:#aaa}pre.code-annotation-code{padding-top:0;padding-bottom:0}pre.code-annotation-code code{z-index:3}#code-annotation-line-highlight-gutter{width:100%;border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}#code-annotation-line-highlight{margin-left:-4em;width:calc(100% + 4em);border-top:solid rgba(170,170,170,.2666666667) 1px;border-bottom:solid rgba(170,170,170,.2666666667) 1px;z-index:2;background-color:rgba(170,170,170,.1333333333)}code.sourceCode .code-annotation-anchor.code-annotation-active{background-color:var(--quarto-hl-normal-color, #aaaaaa);border:solid var(--quarto-hl-normal-color, #aaaaaa) 1px;color:#e9ecef;font-weight:bolder}code.sourceCode .code-annotation-anchor{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;color:var(--quarto-hl-co-color);border:solid var(--quarto-hl-co-color) 1px;border-radius:50%;height:18px;width:18px;font-size:9px;margin-top:2px}code.sourceCode button.code-annotation-anchor{padding:2px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none}code.sourceCode a.code-annotation-anchor{line-height:18px;text-align:center;vertical-align:middle;cursor:default;text-decoration:none}@media print{.page-columns .column-screen-inset{grid-column:page-start-inset/page-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset table{background:#fff}.page-columns .column-screen-inset-left{grid-column:page-start-inset/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-inset-left table{background:#fff}.page-columns .column-screen-inset-right{grid-column:body-content-start/page-end-inset;z-index:998;opacity:.999}.page-columns .column-screen-inset-right table{background:#fff}.page-columns .column-screen{grid-column:page-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen table{background:#fff}.page-columns .column-screen-left{grid-column:page-start/body-content-end;z-index:998;opacity:.999}.page-columns .column-screen-left table{background:#fff}.page-columns .column-screen-right{grid-column:body-content-start/page-end;z-index:998;opacity:.999}.page-columns .column-screen-right table{background:#fff}.page-columns .column-screen-inset-shaded{grid-column:page-start-inset/page-end-inset;padding:1em;background:#f8f9fa;z-index:998;opacity:.999;margin-bottom:1em}}.quarto-video{margin-bottom:1em}.table{border-top:1px solid #ebedee;border-bottom:1px solid #ebedee}.table>thead{border-top-width:0;border-bottom:1px solid #b2bac1}.table a{word-break:break-word}.table>:not(caption)>*>*{background-color:unset;color:unset}#quarto-document-content .crosstalk-input .checkbox input[type=checkbox],#quarto-document-content .crosstalk-input .checkbox-inline input[type=checkbox]{position:unset;margin-top:unset;margin-left:unset}#quarto-document-content .row{margin-left:unset;margin-right:unset}.quarto-xref{white-space:nowrap}a.external:after{content:"";background-image:url('data:image/svg+xml,');background-size:contain;background-repeat:no-repeat;background-position:center center;margin-left:.2em;padding-right:.75em}div.sourceCode code a.external:after{content:none}a.external:after:hover{cursor:pointer}.quarto-ext-icon{display:inline-block;font-size:.75em;padding-left:.3em}.code-with-filename .code-with-filename-file{margin-bottom:0;padding-bottom:2px;padding-top:2px;padding-left:.7em;border:var(--quarto-border-width) solid var(--quarto-border-color);border-radius:var(--quarto-border-radius);border-bottom:0;border-bottom-left-radius:0%;border-bottom-right-radius:0%}.code-with-filename div.sourceCode,.reveal .code-with-filename div.sourceCode{margin-top:0;border-top-left-radius:0%;border-top-right-radius:0%}.code-with-filename .code-with-filename-file pre{margin-bottom:0}.code-with-filename .code-with-filename-file{background-color:rgba(219,219,219,.8)}.quarto-dark .code-with-filename .code-with-filename-file{background-color:#555}.code-with-filename .code-with-filename-file strong{font-weight:400}.quarto-title-banner{margin-bottom:1em;color:#fdfeff;background:#2780e3}.quarto-title-banner a{color:#fdfeff}.quarto-title-banner h1,.quarto-title-banner .h1,.quarto-title-banner h2,.quarto-title-banner .h2{color:#fdfeff}.quarto-title-banner .code-tools-button{color:#97cbff}.quarto-title-banner .code-tools-button:hover{color:#fdfeff}.quarto-title-banner .code-tools-button>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .code-tools-button:hover>.bi::before{background-image:url('data:image/svg+xml,')}.quarto-title-banner .quarto-title .title{font-weight:600}.quarto-title-banner .quarto-categories{margin-top:.75em}@media(min-width: 992px){.quarto-title-banner{padding-top:2.5em;padding-bottom:2.5em}}@media(max-width: 991.98px){.quarto-title-banner{padding-top:1em;padding-bottom:1em}}@media(max-width: 767.98px){body.hypothesis-enabled #title-block-header>*{padding-right:20px}}main.quarto-banner-title-block>section:first-child>h2,main.quarto-banner-title-block>section:first-child>.h2,main.quarto-banner-title-block>section:first-child>h3,main.quarto-banner-title-block>section:first-child>.h3,main.quarto-banner-title-block>section:first-child>h4,main.quarto-banner-title-block>section:first-child>.h4{margin-top:0}.quarto-title .quarto-categories{display:flex;flex-wrap:wrap;row-gap:.5em;column-gap:.4em;padding-bottom:.5em;margin-top:.75em}.quarto-title .quarto-categories .quarto-category{padding:.25em .75em;font-size:.65em;text-transform:uppercase;border:solid 1px;border-radius:.25rem;opacity:.6}.quarto-title .quarto-categories .quarto-category a{color:inherit}.quarto-title-meta-container{display:grid;grid-template-columns:1fr auto}.quarto-title-meta-column-end{display:flex;flex-direction:column;padding-left:1em}.quarto-title-meta-column-end a .bi{margin-right:.3em}#title-block-header.quarto-title-block.default .quarto-title-meta{display:grid;grid-template-columns:minmax(max-content, 1fr) 1fr;grid-column-gap:1em}#title-block-header.quarto-title-block.default .quarto-title .title{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-author-orcid img{margin-top:-0.2em;height:.8em;width:.8em}#title-block-header.quarto-title-block.default .quarto-title-author-email{opacity:.7}#title-block-header.quarto-title-block.default .quarto-description p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p,#title-block-header.quarto-title-block.default .quarto-title-authors p,#title-block-header.quarto-title-block.default .quarto-title-affiliations p{margin-bottom:.1em}#title-block-header.quarto-title-block.default .quarto-title-meta-heading{text-transform:uppercase;margin-top:1em;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-contents{font-size:.9em}#title-block-header.quarto-title-block.default .quarto-title-meta-contents p.affiliation:last-of-type{margin-bottom:.1em}#title-block-header.quarto-title-block.default p.affiliation{margin-bottom:.1em}#title-block-header.quarto-title-block.default .keywords,#title-block-header.quarto-title-block.default .description,#title-block-header.quarto-title-block.default .abstract{margin-top:0}#title-block-header.quarto-title-block.default .keywords>p,#title-block-header.quarto-title-block.default .description>p,#title-block-header.quarto-title-block.default .abstract>p{font-size:.9em}#title-block-header.quarto-title-block.default .keywords>p:last-of-type,#title-block-header.quarto-title-block.default .description>p:last-of-type,#title-block-header.quarto-title-block.default .abstract>p:last-of-type{margin-bottom:0}#title-block-header.quarto-title-block.default .keywords .block-title,#title-block-header.quarto-title-block.default .description .block-title,#title-block-header.quarto-title-block.default .abstract .block-title{margin-top:1em;text-transform:uppercase;font-size:.8em;opacity:.8;font-weight:400}#title-block-header.quarto-title-block.default .quarto-title-meta-author{display:grid;grid-template-columns:minmax(max-content, 1fr) 1fr;grid-column-gap:1em}.quarto-title-tools-only{display:flex;justify-content:right}body{-webkit-font-smoothing:antialiased}.badge.bg-light{color:#343a40}.progress .progress-bar{font-size:8px;line-height:8px} diff --git a/site_libs/bootstrap/bootstrap.min.js b/site_libs/bootstrap/bootstrap.min.js new file mode 100644 index 0000000..e8f21f7 --- /dev/null +++ b/site_libs/bootstrap/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.3.1 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(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},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=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?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();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?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(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 r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(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))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=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 O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){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=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),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 P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.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 D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(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 M(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 j(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${j(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${j(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]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${j(e)}`))};class H{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=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(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.1"}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 B=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 n(e)},z={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=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).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(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.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)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{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=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_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(),g(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&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(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 ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;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&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[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=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),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===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).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),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.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)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",Mt="collapsing",jt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.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 Ht}static get DefaultType(){return Wt}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=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(Mt),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(Mt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(Mt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.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(Mt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(jt,this._config.parent);return z.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=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={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];me(s)&&ue(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}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){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 Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&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 Ce(t){var e=Te(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 Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(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 Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Me(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const je={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Me(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,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)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={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:be(e.placement),variation:Fe(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,We(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,We(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 ze={passive:!0};const Re={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=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(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):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:Me(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(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}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==P(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(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 ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={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=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(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})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],M=f?-T[$]/2:0,j=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-M-q-z-O.mainAxis:j-q-z-O.mainAxis,K=v?-E[$]/2+M+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(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 fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;iNumber.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)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.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=z.find(Ni);for(const i of e){const e=qi.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=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),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=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{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,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}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&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({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=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(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(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),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=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"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=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,Mn=`hide${xn}`,jn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,Mn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,jn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,jn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.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)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],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:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"

"},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}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},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(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)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,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"},ls={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 cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),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 as}static get DefaultType(){return ls}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),N.off(this._element.closest(is),ns,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=N.trigger(this._element,this.constructor.eventName("show")),e=(c(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),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.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(ts,es),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(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":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(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(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 g(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,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,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=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.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:r(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=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{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 ws}static get DefaultType(){return As}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=r(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&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(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=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(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(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.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]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",Ms="Home",js="End",Fs="active",Hs="fade",Ws="show",Bs=":not(.dropdown-toggle)",zs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Rs=`.nav-link${Bs}, .list-group-item${Bs}, [role="tab"]${Bs}, ${zs}`,qs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Vs extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(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?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,Ms,js].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([Ms,js].includes(t.key))i=e[t.key===Ms?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Vs.getOrCreateInstance(i).show())}_getChildren(){return z.find(Rs,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=z.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=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(".dropdown-toggle",Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(Rs)?t:z.findOne(Rs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Vs.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,zs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Vs.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(qs))Vs.getOrCreateInstance(t)})),m(Vs);const Ks=".bs.toast",Qs=`mouseover${Ks}`,Xs=`mouseout${Ks}`,Ys=`focusin${Ks}`,Us=`focusout${Ks}`,Gs=`hide${Ks}`,Js=`hidden${Ks}`,Zs=`show${Ks}`,to=`shown${Ks}`,eo="hide",io="show",no="showing",so={animation:"boolean",autohide:"boolean",delay:"number"},oo={animation:!0,autohide:!0,delay:5e3};class ro extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return oo}static get DefaultType(){return so}static get NAME(){return"toast"}show(){N.trigger(this._element,Zs).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(eo),d(this._element),this._element.classList.add(io,no),this._queueCallback((()=>{this._element.classList.remove(no),N.trigger(this._element,to),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Gs).defaultPrevented||(this._element.classList.add(no),this._queueCallback((()=>{this._element.classList.add(eo),this._element.classList.remove(no,io),N.trigger(this._element,Js)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(io),super.dispose()}isShown(){return this._element.classList.contains(io)}_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(){N.on(this._element,Qs,(t=>this._onInteraction(t,!0))),N.on(this._element,Xs,(t=>this._onInteraction(t,!1))),N.on(this._element,Ys,(t=>this._onInteraction(t,!0))),N.on(this._element,Us,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ro.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ro),m(ro),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Vs,Toast:ro,Tooltip:cs}})); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/site_libs/clipboard/clipboard.min.js b/site_libs/clipboard/clipboard.min.js new file mode 100644 index 0000000..1103f81 --- /dev/null +++ b/site_libs/clipboard/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v2.0.11 + * 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 b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1.anchorjs-link,.anchorjs-link:focus{opacity:1}",A.sheet.cssRules.length),A.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",A.sheet.cssRules.length),A.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',A.sheet.cssRules.length)),h=document.querySelectorAll("[id]"),t=[].map.call(h,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}}); +// @license-end \ No newline at end of file diff --git a/site_libs/quarto-html/popper.min.js b/site_libs/quarto-html/popper.min.js new file mode 100644 index 0000000..e3726d7 --- /dev/null +++ b/site_libs/quarto-html/popper.min.js @@ -0,0 +1,6 @@ +/** + * @popperjs/core v2.11.7 - MIT License + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function c(){return!/^((?!chrome|android).)*safari/i.test(f())}function p(e,o,i){void 0===o&&(o=!1),void 0===i&&(i=!1);var a=e.getBoundingClientRect(),f=1,p=1;o&&r(e)&&(f=e.offsetWidth>0&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&(("body"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]);var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)&&"fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position;)i=j(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&"fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(l(n))<0;){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function N(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function I(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function _(e,r,o){return r===H?I(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&"fixed"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):I(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return"rtl"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function F(e,t,o,s){var f="clippingParents"===t?function(e){var t=w(b(e)),o=["absolute","fixed"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&N(e,o)&&"body"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=_(e,n,s);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),_(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function U(e){return e.split("-")[1]}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?"clippingParents":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,x=Y("number"!=typeof b?b:G(b,k)),w=m===T?"reference":T,O=e.rects.popper,j=e.elements[y?w:m],E=F(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:"absolute",placement:i}),W=I(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+x.top,bottom:B.bottom-E.bottom+x.bottom,left:E.left-B.left+x.left,right:B.right-E.right+x.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?"y":"x";R[e]+=V[n]*t}))}return R}var K={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:"end",end:"start"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,y=C(v),g=f||(y===v||!h?[fe(v)]:function(e){if(C(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(C(n)===M?ue(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,j=!0,E=b[0],k=0;k=0,S=R?"width":"height",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;x[S]>w[S]&&(q=fe(q));var N=fe(q),I=[];if(i&&I.push(V[H]<=0),s&&I.push(V[q]<=0,V[N]<=0),I.every((function(e){return e}))){E=B,j=!1;break}O.set(B,I)}if(j)for(var _=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,"break"},F=h?3:1;F>0;F--){if("break"===_(F))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=U(t.placement),O=!w,j=z(x),M="x"===j?"y":"x",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,N="y"===j?D:P,I="y"===j?A:L,_="y"===j?"height":"width",F=k[j],X=F+b[N],Y=F-b[I],G=m?-H[_]/2:0,K=w===W?B[_]:H[_],Q=w===W?-H[_]:-B[_],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=de(0,B[_],$[_]),oe=O?B[_]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[_]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?"y"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=F+ie-fe,pe=de(m?a(X,F+oe-fe-se):X,F,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-F}if(c){var ue,le="x"===j?D:P,he="x"===j?A:L,me=k[M],ve="y"===M?"height":"width",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(x),xe=null!=(ue=null==S?void 0:S[M])?ue:0,we=be?ye:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(we,me,Oe):de(m?we:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:["offset"]};var me={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l="y"===f?D:P,d="y"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?"y"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(x,O,w),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&N(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ve(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:"reference"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),xe=[ee,te,oe,ie,ae,le,he,me,ge],we=Z({defaultModifiers:xe});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=we,e.createPopperLite=be,e.defaultModifiers=xe,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,"__esModule",{value:!0})})); + diff --git a/site_libs/quarto-html/quarto-syntax-highlighting.css b/site_libs/quarto-html/quarto-syntax-highlighting.css new file mode 100644 index 0000000..d9fd98f --- /dev/null +++ b/site_libs/quarto-html/quarto-syntax-highlighting.css @@ -0,0 +1,203 @@ +/* quarto syntax highlight colors */ +:root { + --quarto-hl-ot-color: #003B4F; + --quarto-hl-at-color: #657422; + --quarto-hl-ss-color: #20794D; + --quarto-hl-an-color: #5E5E5E; + --quarto-hl-fu-color: #4758AB; + --quarto-hl-st-color: #20794D; + --quarto-hl-cf-color: #003B4F; + --quarto-hl-op-color: #5E5E5E; + --quarto-hl-er-color: #AD0000; + --quarto-hl-bn-color: #AD0000; + --quarto-hl-al-color: #AD0000; + --quarto-hl-va-color: #111111; + --quarto-hl-bu-color: inherit; + --quarto-hl-ex-color: inherit; + --quarto-hl-pp-color: #AD0000; + --quarto-hl-in-color: #5E5E5E; + --quarto-hl-vs-color: #20794D; + --quarto-hl-wa-color: #5E5E5E; + --quarto-hl-do-color: #5E5E5E; + --quarto-hl-im-color: #00769E; + --quarto-hl-ch-color: #20794D; + --quarto-hl-dt-color: #AD0000; + --quarto-hl-fl-color: #AD0000; + --quarto-hl-co-color: #5E5E5E; + --quarto-hl-cv-color: #5E5E5E; + --quarto-hl-cn-color: #8f5902; + --quarto-hl-sc-color: #5E5E5E; + --quarto-hl-dv-color: #AD0000; + --quarto-hl-kw-color: #003B4F; +} + +/* other quarto variables */ +:root { + --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +pre > code.sourceCode > span { + color: #003B4F; +} + +code span { + color: #003B4F; +} + +code.sourceCode > span { + color: #003B4F; +} + +div.sourceCode, +div.sourceCode pre.sourceCode { + color: #003B4F; +} + +code span.ot { + color: #003B4F; + font-style: inherit; +} + +code span.at { + color: #657422; + font-style: inherit; +} + +code span.ss { + color: #20794D; + font-style: inherit; +} + +code span.an { + color: #5E5E5E; + font-style: inherit; +} + +code span.fu { + color: #4758AB; + font-style: inherit; +} + +code span.st { + color: #20794D; + font-style: inherit; +} + +code span.cf { + color: #003B4F; + font-style: inherit; +} + +code span.op { + color: #5E5E5E; + font-style: inherit; +} + +code span.er { + color: #AD0000; + font-style: inherit; +} + +code span.bn { + color: #AD0000; + font-style: inherit; +} + +code span.al { + color: #AD0000; + font-style: inherit; +} + +code span.va { + color: #111111; + font-style: inherit; +} + +code span.bu { + font-style: inherit; +} + +code span.ex { + font-style: inherit; +} + +code span.pp { + color: #AD0000; + font-style: inherit; +} + +code span.in { + color: #5E5E5E; + font-style: inherit; +} + +code span.vs { + color: #20794D; + font-style: inherit; +} + +code span.wa { + color: #5E5E5E; + font-style: italic; +} + +code span.do { + color: #5E5E5E; + font-style: italic; +} + +code span.im { + color: #00769E; + font-style: inherit; +} + +code span.ch { + color: #20794D; + font-style: inherit; +} + +code span.dt { + color: #AD0000; + font-style: inherit; +} + +code span.fl { + color: #AD0000; + font-style: inherit; +} + +code span.co { + color: #5E5E5E; + font-style: inherit; +} + +code span.cv { + color: #5E5E5E; + font-style: italic; +} + +code span.cn { + color: #8f5902; + font-style: inherit; +} + +code span.sc { + color: #5E5E5E; + font-style: inherit; +} + +code span.dv { + color: #AD0000; + font-style: inherit; +} + +code span.kw { + color: #003B4F; + font-style: inherit; +} + +.prevent-inlining { + content: " { + // Find any conflicting margin elements and add margins to the + // top to prevent overlap + const marginChildren = window.document.querySelectorAll( + ".column-margin.column-container > *, .margin-caption, .aside" + ); + + let lastBottom = 0; + for (const marginChild of marginChildren) { + if (marginChild.offsetParent !== null) { + // clear the top margin so we recompute it + marginChild.style.marginTop = null; + const top = marginChild.getBoundingClientRect().top + window.scrollY; + if (top < lastBottom) { + const marginChildStyle = window.getComputedStyle(marginChild); + const marginBottom = parseFloat(marginChildStyle["marginBottom"]); + const margin = lastBottom - top + marginBottom; + marginChild.style.marginTop = `${margin}px`; + } + const styles = window.getComputedStyle(marginChild); + const marginTop = parseFloat(styles["marginTop"]); + lastBottom = top + marginChild.getBoundingClientRect().height + marginTop; + } + } +}; + +window.document.addEventListener("DOMContentLoaded", function (_event) { + // Recompute the position of margin elements anytime the body size changes + if (window.ResizeObserver) { + const resizeObserver = new window.ResizeObserver( + throttle(() => { + layoutMarginEls(); + if ( + window.document.body.getBoundingClientRect().width < 990 && + isReaderMode() + ) { + quartoToggleReader(); + } + }, 50) + ); + resizeObserver.observe(window.document.body); + } + + const tocEl = window.document.querySelector('nav.toc-active[role="doc-toc"]'); + const sidebarEl = window.document.getElementById("quarto-sidebar"); + const leftTocEl = window.document.getElementById("quarto-sidebar-toc-left"); + const marginSidebarEl = window.document.getElementById( + "quarto-margin-sidebar" + ); + // function to determine whether the element has a previous sibling that is active + const prevSiblingIsActiveLink = (el) => { + const sibling = el.previousElementSibling; + if (sibling && sibling.tagName === "A") { + return sibling.classList.contains("active"); + } else { + return false; + } + }; + + // fire slideEnter for bootstrap tab activations (for htmlwidget resize behavior) + function fireSlideEnter(e) { + const event = window.document.createEvent("Event"); + event.initEvent("slideenter", true, true); + window.document.dispatchEvent(event); + } + const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]'); + tabs.forEach((tab) => { + tab.addEventListener("shown.bs.tab", fireSlideEnter); + }); + + // fire slideEnter for tabby tab activations (for htmlwidget resize behavior) + document.addEventListener("tabby", fireSlideEnter, false); + + // Track scrolling and mark TOC links as active + // get table of contents and sidebar (bail if we don't have at least one) + const tocLinks = tocEl + ? [...tocEl.querySelectorAll("a[data-scroll-target]")] + : []; + const makeActive = (link) => tocLinks[link].classList.add("active"); + const removeActive = (link) => tocLinks[link].classList.remove("active"); + const removeAllActive = () => + [...Array(tocLinks.length).keys()].forEach((link) => removeActive(link)); + + // activate the anchor for a section associated with this TOC entry + tocLinks.forEach((link) => { + link.addEventListener("click", () => { + if (link.href.indexOf("#") !== -1) { + const anchor = link.href.split("#")[1]; + const heading = window.document.querySelector( + `[data-anchor-id=${anchor}]` + ); + if (heading) { + // Add the class + heading.classList.add("reveal-anchorjs-link"); + + // function to show the anchor + const handleMouseout = () => { + heading.classList.remove("reveal-anchorjs-link"); + heading.removeEventListener("mouseout", handleMouseout); + }; + + // add a function to clear the anchor when the user mouses out of it + heading.addEventListener("mouseout", handleMouseout); + } + } + }); + }); + + const sections = tocLinks.map((link) => { + const target = link.getAttribute("data-scroll-target"); + if (target.startsWith("#")) { + return window.document.getElementById(decodeURI(`${target.slice(1)}`)); + } else { + return window.document.querySelector(decodeURI(`${target}`)); + } + }); + + const sectionMargin = 200; + let currentActive = 0; + // track whether we've initialized state the first time + let init = false; + + const updateActiveLink = () => { + // The index from bottom to top (e.g. reversed list) + let sectionIndex = -1; + if ( + window.innerHeight + window.pageYOffset >= + window.document.body.offsetHeight + ) { + sectionIndex = 0; + } else { + sectionIndex = [...sections].reverse().findIndex((section) => { + if (section) { + return window.pageYOffset >= section.offsetTop - sectionMargin; + } else { + return false; + } + }); + } + if (sectionIndex > -1) { + const current = sections.length - sectionIndex - 1; + if (current !== currentActive) { + removeAllActive(); + currentActive = current; + makeActive(current); + if (init) { + window.dispatchEvent(sectionChanged); + } + init = true; + } + } + }; + + const inHiddenRegion = (top, bottom, hiddenRegions) => { + for (const region of hiddenRegions) { + if (top <= region.bottom && bottom >= region.top) { + return true; + } + } + return false; + }; + + const categorySelector = "header.quarto-title-block .quarto-category"; + const activateCategories = (href) => { + // Find any categories + // Surround them with a link pointing back to: + // #category=Authoring + try { + const categoryEls = window.document.querySelectorAll(categorySelector); + for (const categoryEl of categoryEls) { + const categoryText = categoryEl.textContent; + if (categoryText) { + const link = `${href}#category=${encodeURIComponent(categoryText)}`; + const linkEl = window.document.createElement("a"); + linkEl.setAttribute("href", link); + for (const child of categoryEl.childNodes) { + linkEl.append(child); + } + categoryEl.appendChild(linkEl); + } + } + } catch { + // Ignore errors + } + }; + function hasTitleCategories() { + return window.document.querySelector(categorySelector) !== null; + } + + function offsetRelativeUrl(url) { + const offset = getMeta("quarto:offset"); + return offset ? offset + url : url; + } + + function offsetAbsoluteUrl(url) { + const offset = getMeta("quarto:offset"); + const baseUrl = new URL(offset, window.location); + + const projRelativeUrl = url.replace(baseUrl, ""); + if (projRelativeUrl.startsWith("/")) { + return projRelativeUrl; + } else { + return "/" + projRelativeUrl; + } + } + + // read a meta tag value + function getMeta(metaName) { + const metas = window.document.getElementsByTagName("meta"); + for (let i = 0; i < metas.length; i++) { + if (metas[i].getAttribute("name") === metaName) { + return metas[i].getAttribute("content"); + } + } + return ""; + } + + async function findAndActivateCategories() { + const currentPagePath = offsetAbsoluteUrl(window.location.href); + const response = await fetch(offsetRelativeUrl("listings.json")); + if (response.status == 200) { + return response.json().then(function (listingPaths) { + const listingHrefs = []; + for (const listingPath of listingPaths) { + const pathWithoutLeadingSlash = listingPath.listing.substring(1); + for (const item of listingPath.items) { + if ( + item === currentPagePath || + item === currentPagePath + "index.html" + ) { + // Resolve this path against the offset to be sure + // we already are using the correct path to the listing + // (this adjusts the listing urls to be rooted against + // whatever root the page is actually running against) + const relative = offsetRelativeUrl(pathWithoutLeadingSlash); + const baseUrl = window.location; + const resolvedPath = new URL(relative, baseUrl); + listingHrefs.push(resolvedPath.pathname); + break; + } + } + } + + // Look up the tree for a nearby linting and use that if we find one + const nearestListing = findNearestParentListing( + offsetAbsoluteUrl(window.location.pathname), + listingHrefs + ); + if (nearestListing) { + activateCategories(nearestListing); + } else { + // See if the referrer is a listing page for this item + const referredRelativePath = offsetAbsoluteUrl(document.referrer); + const referrerListing = listingHrefs.find((listingHref) => { + const isListingReferrer = + listingHref === referredRelativePath || + listingHref === referredRelativePath + "index.html"; + return isListingReferrer; + }); + + if (referrerListing) { + // Try to use the referrer if possible + activateCategories(referrerListing); + } else if (listingHrefs.length > 0) { + // Otherwise, just fall back to the first listing + activateCategories(listingHrefs[0]); + } + } + }); + } + } + if (hasTitleCategories()) { + findAndActivateCategories(); + } + + const findNearestParentListing = (href, listingHrefs) => { + if (!href || !listingHrefs) { + return undefined; + } + // Look up the tree for a nearby linting and use that if we find one + const relativeParts = href.substring(1).split("/"); + while (relativeParts.length > 0) { + const path = relativeParts.join("/"); + for (const listingHref of listingHrefs) { + if (listingHref.startsWith(path)) { + return listingHref; + } + } + relativeParts.pop(); + } + + return undefined; + }; + + const manageSidebarVisiblity = (el, placeholderDescriptor) => { + let isVisible = true; + let elRect; + + return (hiddenRegions) => { + if (el === null) { + return; + } + + // Find the last element of the TOC + const lastChildEl = el.lastElementChild; + + if (lastChildEl) { + // Converts the sidebar to a menu + const convertToMenu = () => { + for (const child of el.children) { + child.style.opacity = 0; + child.style.overflow = "hidden"; + } + + nexttick(() => { + const toggleContainer = window.document.createElement("div"); + toggleContainer.style.width = "100%"; + toggleContainer.classList.add("zindex-over-content"); + toggleContainer.classList.add("quarto-sidebar-toggle"); + toggleContainer.classList.add("headroom-target"); // Marks this to be managed by headeroom + toggleContainer.id = placeholderDescriptor.id; + toggleContainer.style.position = "fixed"; + + const toggleIcon = window.document.createElement("i"); + toggleIcon.classList.add("quarto-sidebar-toggle-icon"); + toggleIcon.classList.add("bi"); + toggleIcon.classList.add("bi-caret-down-fill"); + + const toggleTitle = window.document.createElement("div"); + const titleEl = window.document.body.querySelector( + placeholderDescriptor.titleSelector + ); + if (titleEl) { + toggleTitle.append( + titleEl.textContent || titleEl.innerText, + toggleIcon + ); + } + toggleTitle.classList.add("zindex-over-content"); + toggleTitle.classList.add("quarto-sidebar-toggle-title"); + toggleContainer.append(toggleTitle); + + const toggleContents = window.document.createElement("div"); + toggleContents.classList = el.classList; + toggleContents.classList.add("zindex-over-content"); + toggleContents.classList.add("quarto-sidebar-toggle-contents"); + for (const child of el.children) { + if (child.id === "toc-title") { + continue; + } + + const clone = child.cloneNode(true); + clone.style.opacity = 1; + clone.style.display = null; + toggleContents.append(clone); + } + toggleContents.style.height = "0px"; + const positionToggle = () => { + // position the element (top left of parent, same width as parent) + if (!elRect) { + elRect = el.getBoundingClientRect(); + } + toggleContainer.style.left = `${elRect.left}px`; + toggleContainer.style.top = `${elRect.top}px`; + toggleContainer.style.width = `${elRect.width}px`; + }; + positionToggle(); + + toggleContainer.append(toggleContents); + el.parentElement.prepend(toggleContainer); + + // Process clicks + let tocShowing = false; + // Allow the caller to control whether this is dismissed + // when it is clicked (e.g. sidebar navigation supports + // opening and closing the nav tree, so don't dismiss on click) + const clickEl = placeholderDescriptor.dismissOnClick + ? toggleContainer + : toggleTitle; + + const closeToggle = () => { + if (tocShowing) { + toggleContainer.classList.remove("expanded"); + toggleContents.style.height = "0px"; + tocShowing = false; + } + }; + + // Get rid of any expanded toggle if the user scrolls + window.document.addEventListener( + "scroll", + throttle(() => { + closeToggle(); + }, 50) + ); + + // Handle positioning of the toggle + window.addEventListener( + "resize", + throttle(() => { + elRect = undefined; + positionToggle(); + }, 50) + ); + + window.addEventListener("quarto-hrChanged", () => { + elRect = undefined; + }); + + // Process the click + clickEl.onclick = () => { + if (!tocShowing) { + toggleContainer.classList.add("expanded"); + toggleContents.style.height = null; + tocShowing = true; + } else { + closeToggle(); + } + }; + }); + }; + + // Converts a sidebar from a menu back to a sidebar + const convertToSidebar = () => { + for (const child of el.children) { + child.style.opacity = 1; + child.style.overflow = null; + } + + const placeholderEl = window.document.getElementById( + placeholderDescriptor.id + ); + if (placeholderEl) { + placeholderEl.remove(); + } + + el.classList.remove("rollup"); + }; + + if (isReaderMode()) { + convertToMenu(); + isVisible = false; + } else { + // Find the top and bottom o the element that is being managed + const elTop = el.offsetTop; + const elBottom = + elTop + lastChildEl.offsetTop + lastChildEl.offsetHeight; + + if (!isVisible) { + // If the element is current not visible reveal if there are + // no conflicts with overlay regions + if (!inHiddenRegion(elTop, elBottom, hiddenRegions)) { + convertToSidebar(); + isVisible = true; + } + } else { + // If the element is visible, hide it if it conflicts with overlay regions + // and insert a placeholder toggle (or if we're in reader mode) + if (inHiddenRegion(elTop, elBottom, hiddenRegions)) { + convertToMenu(); + isVisible = false; + } + } + } + } + }; + }; + + const tabEls = document.querySelectorAll('a[data-bs-toggle="tab"]'); + for (const tabEl of tabEls) { + const id = tabEl.getAttribute("data-bs-target"); + if (id) { + const columnEl = document.querySelector( + `${id} .column-margin, .tabset-margin-content` + ); + if (columnEl) + tabEl.addEventListener("shown.bs.tab", function (event) { + const el = event.srcElement; + if (el) { + const visibleCls = `${el.id}-margin-content`; + // walk up until we find a parent tabset + let panelTabsetEl = el.parentElement; + while (panelTabsetEl) { + if (panelTabsetEl.classList.contains("panel-tabset")) { + break; + } + panelTabsetEl = panelTabsetEl.parentElement; + } + + if (panelTabsetEl) { + const prevSib = panelTabsetEl.previousElementSibling; + if ( + prevSib && + prevSib.classList.contains("tabset-margin-container") + ) { + const childNodes = prevSib.querySelectorAll( + ".tabset-margin-content" + ); + for (const childEl of childNodes) { + if (childEl.classList.contains(visibleCls)) { + childEl.classList.remove("collapse"); + } else { + childEl.classList.add("collapse"); + } + } + } + } + } + + layoutMarginEls(); + }); + } + } + + // Manage the visibility of the toc and the sidebar + const marginScrollVisibility = manageSidebarVisiblity(marginSidebarEl, { + id: "quarto-toc-toggle", + titleSelector: "#toc-title", + dismissOnClick: true, + }); + const sidebarScrollVisiblity = manageSidebarVisiblity(sidebarEl, { + id: "quarto-sidebarnav-toggle", + titleSelector: ".title", + dismissOnClick: false, + }); + let tocLeftScrollVisibility; + if (leftTocEl) { + tocLeftScrollVisibility = manageSidebarVisiblity(leftTocEl, { + id: "quarto-lefttoc-toggle", + titleSelector: "#toc-title", + dismissOnClick: true, + }); + } + + // Find the first element that uses formatting in special columns + const conflictingEls = window.document.body.querySelectorAll( + '[class^="column-"], [class*=" column-"], aside, [class*="margin-caption"], [class*=" margin-caption"], [class*="margin-ref"], [class*=" margin-ref"]' + ); + + // Filter all the possibly conflicting elements into ones + // the do conflict on the left or ride side + const arrConflictingEls = Array.from(conflictingEls); + const leftSideConflictEls = arrConflictingEls.filter((el) => { + if (el.tagName === "ASIDE") { + return false; + } + return Array.from(el.classList).find((className) => { + return ( + className !== "column-body" && + className.startsWith("column-") && + !className.endsWith("right") && + !className.endsWith("container") && + className !== "column-margin" + ); + }); + }); + const rightSideConflictEls = arrConflictingEls.filter((el) => { + if (el.tagName === "ASIDE") { + return true; + } + + const hasMarginCaption = Array.from(el.classList).find((className) => { + return className == "margin-caption"; + }); + if (hasMarginCaption) { + return true; + } + + return Array.from(el.classList).find((className) => { + return ( + className !== "column-body" && + !className.endsWith("container") && + className.startsWith("column-") && + !className.endsWith("left") + ); + }); + }); + + const kOverlapPaddingSize = 10; + function toRegions(els) { + return els.map((el) => { + const boundRect = el.getBoundingClientRect(); + const top = + boundRect.top + + document.documentElement.scrollTop - + kOverlapPaddingSize; + return { + top, + bottom: top + el.scrollHeight + 2 * kOverlapPaddingSize, + }; + }); + } + + let hasObserved = false; + const visibleItemObserver = (els) => { + let visibleElements = [...els]; + const intersectionObserver = new IntersectionObserver( + (entries, _observer) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + if (visibleElements.indexOf(entry.target) === -1) { + visibleElements.push(entry.target); + } + } else { + visibleElements = visibleElements.filter((visibleEntry) => { + return visibleEntry !== entry; + }); + } + }); + + if (!hasObserved) { + hideOverlappedSidebars(); + } + hasObserved = true; + }, + {} + ); + els.forEach((el) => { + intersectionObserver.observe(el); + }); + + return { + getVisibleEntries: () => { + return visibleElements; + }, + }; + }; + + const rightElementObserver = visibleItemObserver(rightSideConflictEls); + const leftElementObserver = visibleItemObserver(leftSideConflictEls); + + const hideOverlappedSidebars = () => { + marginScrollVisibility(toRegions(rightElementObserver.getVisibleEntries())); + sidebarScrollVisiblity(toRegions(leftElementObserver.getVisibleEntries())); + if (tocLeftScrollVisibility) { + tocLeftScrollVisibility( + toRegions(leftElementObserver.getVisibleEntries()) + ); + } + }; + + window.quartoToggleReader = () => { + // Applies a slow class (or removes it) + // to update the transition speed + const slowTransition = (slow) => { + const manageTransition = (id, slow) => { + const el = document.getElementById(id); + if (el) { + if (slow) { + el.classList.add("slow"); + } else { + el.classList.remove("slow"); + } + } + }; + + manageTransition("TOC", slow); + manageTransition("quarto-sidebar", slow); + }; + const readerMode = !isReaderMode(); + setReaderModeValue(readerMode); + + // If we're entering reader mode, slow the transition + if (readerMode) { + slowTransition(readerMode); + } + highlightReaderToggle(readerMode); + hideOverlappedSidebars(); + + // If we're exiting reader mode, restore the non-slow transition + if (!readerMode) { + slowTransition(!readerMode); + } + }; + + const highlightReaderToggle = (readerMode) => { + const els = document.querySelectorAll(".quarto-reader-toggle"); + if (els) { + els.forEach((el) => { + if (readerMode) { + el.classList.add("reader"); + } else { + el.classList.remove("reader"); + } + }); + } + }; + + const setReaderModeValue = (val) => { + if (window.location.protocol !== "file:") { + window.localStorage.setItem("quarto-reader-mode", val); + } else { + localReaderMode = val; + } + }; + + const isReaderMode = () => { + if (window.location.protocol !== "file:") { + return window.localStorage.getItem("quarto-reader-mode") === "true"; + } else { + return localReaderMode; + } + }; + let localReaderMode = null; + + const tocOpenDepthStr = tocEl?.getAttribute("data-toc-expanded"); + const tocOpenDepth = tocOpenDepthStr ? Number(tocOpenDepthStr) : 1; + + // Walk the TOC and collapse/expand nodes + // Nodes are expanded if: + // - they are top level + // - they have children that are 'active' links + // - they are directly below an link that is 'active' + const walk = (el, depth) => { + // Tick depth when we enter a UL + if (el.tagName === "UL") { + depth = depth + 1; + } + + // It this is active link + let isActiveNode = false; + if (el.tagName === "A" && el.classList.contains("active")) { + isActiveNode = true; + } + + // See if there is an active child to this element + let hasActiveChild = false; + for (child of el.children) { + hasActiveChild = walk(child, depth) || hasActiveChild; + } + + // Process the collapse state if this is an UL + if (el.tagName === "UL") { + if (tocOpenDepth === -1 && depth > 1) { + el.classList.add("collapse"); + } else if ( + depth <= tocOpenDepth || + hasActiveChild || + prevSiblingIsActiveLink(el) + ) { + el.classList.remove("collapse"); + } else { + el.classList.add("collapse"); + } + + // untick depth when we leave a UL + depth = depth - 1; + } + return hasActiveChild || isActiveNode; + }; + + // walk the TOC and expand / collapse any items that should be shown + + if (tocEl) { + walk(tocEl, 0); + updateActiveLink(); + } + + // Throttle the scroll event and walk peridiocally + window.document.addEventListener( + "scroll", + throttle(() => { + if (tocEl) { + updateActiveLink(); + walk(tocEl, 0); + } + if (!isReaderMode()) { + hideOverlappedSidebars(); + } + }, 5) + ); + window.addEventListener( + "resize", + throttle(() => { + if (!isReaderMode()) { + hideOverlappedSidebars(); + } + }, 10) + ); + hideOverlappedSidebars(); + highlightReaderToggle(isReaderMode()); +}); + +// grouped tabsets +window.addEventListener("pageshow", (_event) => { + function getTabSettings() { + const data = localStorage.getItem("quarto-persistent-tabsets-data"); + if (!data) { + localStorage.setItem("quarto-persistent-tabsets-data", "{}"); + return {}; + } + if (data) { + return JSON.parse(data); + } + } + + function setTabSettings(data) { + localStorage.setItem( + "quarto-persistent-tabsets-data", + JSON.stringify(data) + ); + } + + function setTabState(groupName, groupValue) { + const data = getTabSettings(); + data[groupName] = groupValue; + setTabSettings(data); + } + + function toggleTab(tab, active) { + const tabPanelId = tab.getAttribute("aria-controls"); + const tabPanel = document.getElementById(tabPanelId); + if (active) { + tab.classList.add("active"); + tabPanel.classList.add("active"); + } else { + tab.classList.remove("active"); + tabPanel.classList.remove("active"); + } + } + + function toggleAll(selectedGroup, selectorsToSync) { + for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) { + const active = selectedGroup === thisGroup; + for (const tab of tabs) { + toggleTab(tab, active); + } + } + } + + function findSelectorsToSyncByLanguage() { + const result = {}; + const tabs = Array.from( + document.querySelectorAll(`div[data-group] a[id^='tabset-']`) + ); + for (const item of tabs) { + const div = item.parentElement.parentElement.parentElement; + const group = div.getAttribute("data-group"); + if (!result[group]) { + result[group] = {}; + } + const selectorsToSync = result[group]; + const value = item.innerHTML; + if (!selectorsToSync[value]) { + selectorsToSync[value] = []; + } + selectorsToSync[value].push(item); + } + return result; + } + + function setupSelectorSync() { + const selectorsToSync = findSelectorsToSyncByLanguage(); + Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => { + Object.entries(tabSetsByValue).forEach(([value, items]) => { + items.forEach((item) => { + item.addEventListener("click", (_event) => { + setTabState(group, value); + toggleAll(value, selectorsToSync[group]); + }); + }); + }); + }); + return selectorsToSync; + } + + const selectorsToSync = setupSelectorSync(); + for (const [group, selectedName] of Object.entries(getTabSettings())) { + const selectors = selectorsToSync[group]; + // it's possible that stale state gives us empty selections, so we explicitly check here. + if (selectors) { + toggleAll(selectedName, selectors); + } + } +}); + +function throttle(func, wait) { + let waiting = false; + return function () { + if (!waiting) { + func.apply(this, arguments); + waiting = true; + setTimeout(function () { + waiting = false; + }, wait); + } + }; +} + +function nexttick(func) { + return setTimeout(func, 0); +} diff --git a/site_libs/quarto-html/tippy.css b/site_libs/quarto-html/tippy.css new file mode 100644 index 0000000..e6ae635 --- /dev/null +++ b/site_libs/quarto-html/tippy.css @@ -0,0 +1 @@ +.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} \ No newline at end of file diff --git a/site_libs/quarto-html/tippy.umd.min.js b/site_libs/quarto-html/tippy.umd.min.js new file mode 100644 index 0000000..ca292be --- /dev/null +++ b/site_libs/quarto-html/tippy.umd.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],t):(e=e||self).tippy=t(e.Popper)}(this,(function(e){"use strict";var t={passive:!0,capture:!0},n=function(){return document.body};function r(e,t,n){if(Array.isArray(e)){var r=e[t];return null==r?Array.isArray(n)?n[t]:n:r}return e}function o(e,t){var n={}.toString.call(e);return 0===n.indexOf("[object")&&n.indexOf(t+"]")>-1}function i(e,t){return"function"==typeof e?e.apply(void 0,t):e}function a(e,t){return 0===t?e:function(r){clearTimeout(n),n=setTimeout((function(){e(r)}),t)};var n}function s(e,t){var n=Object.assign({},e);return t.forEach((function(e){delete n[e]})),n}function u(e){return[].concat(e)}function c(e,t){-1===e.indexOf(t)&&e.push(t)}function p(e){return e.split("-")[0]}function f(e){return[].slice.call(e)}function l(e){return Object.keys(e).reduce((function(t,n){return void 0!==e[n]&&(t[n]=e[n]),t}),{})}function d(){return document.createElement("div")}function v(e){return["Element","Fragment"].some((function(t){return o(e,t)}))}function m(e){return o(e,"MouseEvent")}function g(e){return!(!e||!e._tippy||e._tippy.reference!==e)}function h(e){return v(e)?[e]:function(e){return o(e,"NodeList")}(e)?f(e):Array.isArray(e)?e:f(document.querySelectorAll(e))}function b(e,t){e.forEach((function(e){e&&(e.style.transitionDuration=t+"ms")}))}function y(e,t){e.forEach((function(e){e&&e.setAttribute("data-state",t)}))}function w(e){var t,n=u(e)[0];return null!=n&&null!=(t=n.ownerDocument)&&t.body?n.ownerDocument:document}function E(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach((function(t){e[r](t,n)}))}function O(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=null==n.getRootNode||null==(r=n.getRootNode())?void 0:r.host}return!1}var x={isTouch:!1},C=0;function T(){x.isTouch||(x.isTouch=!0,window.performance&&document.addEventListener("mousemove",A))}function A(){var e=performance.now();e-C<20&&(x.isTouch=!1,document.removeEventListener("mousemove",A)),C=e}function L(){var e=document.activeElement;if(g(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}var D=!!("undefined"!=typeof window&&"undefined"!=typeof document)&&!!window.msCrypto,R=Object.assign({appendTo:n,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},{animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},{allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999}),k=Object.keys(R);function P(e){var t=(e.plugins||[]).reduce((function(t,n){var r,o=n.name,i=n.defaultValue;o&&(t[o]=void 0!==e[o]?e[o]:null!=(r=R[o])?r:i);return t}),{});return Object.assign({},e,t)}function j(e,t){var n=Object.assign({},t,{content:i(t.content,[e])},t.ignoreAttributes?{}:function(e,t){return(t?Object.keys(P(Object.assign({},R,{plugins:t}))):k).reduce((function(t,n){var r=(e.getAttribute("data-tippy-"+n)||"").trim();if(!r)return t;if("content"===n)t[n]=r;else try{t[n]=JSON.parse(r)}catch(e){t[n]=r}return t}),{})}(e,t.plugins));return n.aria=Object.assign({},R.aria,n.aria),n.aria={expanded:"auto"===n.aria.expanded?t.interactive:n.aria.expanded,content:"auto"===n.aria.content?t.interactive?null:"describedby":n.aria.content},n}function M(e,t){e.innerHTML=t}function V(e){var t=d();return!0===e?t.className="tippy-arrow":(t.className="tippy-svg-arrow",v(e)?t.appendChild(e):M(t,e)),t}function I(e,t){v(t.content)?(M(e,""),e.appendChild(t.content)):"function"!=typeof t.content&&(t.allowHTML?M(e,t.content):e.textContent=t.content)}function S(e){var t=e.firstElementChild,n=f(t.children);return{box:t,content:n.find((function(e){return e.classList.contains("tippy-content")})),arrow:n.find((function(e){return e.classList.contains("tippy-arrow")||e.classList.contains("tippy-svg-arrow")})),backdrop:n.find((function(e){return e.classList.contains("tippy-backdrop")}))}}function N(e){var t=d(),n=d();n.className="tippy-box",n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=d();function o(n,r){var o=S(t),i=o.box,a=o.content,s=o.arrow;r.theme?i.setAttribute("data-theme",r.theme):i.removeAttribute("data-theme"),"string"==typeof r.animation?i.setAttribute("data-animation",r.animation):i.removeAttribute("data-animation"),r.inertia?i.setAttribute("data-inertia",""):i.removeAttribute("data-inertia"),i.style.maxWidth="number"==typeof r.maxWidth?r.maxWidth+"px":r.maxWidth,r.role?i.setAttribute("role",r.role):i.removeAttribute("role"),n.content===r.content&&n.allowHTML===r.allowHTML||I(a,e.props),r.arrow?s?n.arrow!==r.arrow&&(i.removeChild(s),i.appendChild(V(r.arrow))):i.appendChild(V(r.arrow)):s&&i.removeChild(s)}return r.className="tippy-content",r.setAttribute("data-state","hidden"),I(r,e.props),t.appendChild(n),n.appendChild(r),o(e.props,e.props),{popper:t,onUpdate:o}}N.$$tippy=!0;var B=1,H=[],U=[];function _(o,s){var v,g,h,C,T,A,L,k,M=j(o,Object.assign({},R,P(l(s)))),V=!1,I=!1,N=!1,_=!1,F=[],W=a(we,M.interactiveDebounce),X=B++,Y=(k=M.plugins).filter((function(e,t){return k.indexOf(e)===t})),$={id:X,reference:o,popper:d(),popperInstance:null,props:M,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},plugins:Y,clearDelayTimeouts:function(){clearTimeout(v),clearTimeout(g),cancelAnimationFrame(h)},setProps:function(e){if($.state.isDestroyed)return;ae("onBeforeUpdate",[$,e]),be();var t=$.props,n=j(o,Object.assign({},t,l(e),{ignoreAttributes:!0}));$.props=n,he(),t.interactiveDebounce!==n.interactiveDebounce&&(ce(),W=a(we,n.interactiveDebounce));t.triggerTarget&&!n.triggerTarget?u(t.triggerTarget).forEach((function(e){e.removeAttribute("aria-expanded")})):n.triggerTarget&&o.removeAttribute("aria-expanded");ue(),ie(),J&&J(t,n);$.popperInstance&&(Ce(),Ae().forEach((function(e){requestAnimationFrame(e._tippy.popperInstance.forceUpdate)})));ae("onAfterUpdate",[$,e])},setContent:function(e){$.setProps({content:e})},show:function(){var e=$.state.isVisible,t=$.state.isDestroyed,o=!$.state.isEnabled,a=x.isTouch&&!$.props.touch,s=r($.props.duration,0,R.duration);if(e||t||o||a)return;if(te().hasAttribute("disabled"))return;if(ae("onShow",[$],!1),!1===$.props.onShow($))return;$.state.isVisible=!0,ee()&&(z.style.visibility="visible");ie(),de(),$.state.isMounted||(z.style.transition="none");if(ee()){var u=re(),p=u.box,f=u.content;b([p,f],0)}A=function(){var e;if($.state.isVisible&&!_){if(_=!0,z.offsetHeight,z.style.transition=$.props.moveTransition,ee()&&$.props.animation){var t=re(),n=t.box,r=t.content;b([n,r],s),y([n,r],"visible")}se(),ue(),c(U,$),null==(e=$.popperInstance)||e.forceUpdate(),ae("onMount",[$]),$.props.animation&&ee()&&function(e,t){me(e,t)}(s,(function(){$.state.isShown=!0,ae("onShown",[$])}))}},function(){var e,t=$.props.appendTo,r=te();e=$.props.interactive&&t===n||"parent"===t?r.parentNode:i(t,[r]);e.contains(z)||e.appendChild(z);$.state.isMounted=!0,Ce()}()},hide:function(){var e=!$.state.isVisible,t=$.state.isDestroyed,n=!$.state.isEnabled,o=r($.props.duration,1,R.duration);if(e||t||n)return;if(ae("onHide",[$],!1),!1===$.props.onHide($))return;$.state.isVisible=!1,$.state.isShown=!1,_=!1,V=!1,ee()&&(z.style.visibility="hidden");if(ce(),ve(),ie(!0),ee()){var i=re(),a=i.box,s=i.content;$.props.animation&&(b([a,s],o),y([a,s],"hidden"))}se(),ue(),$.props.animation?ee()&&function(e,t){me(e,(function(){!$.state.isVisible&&z.parentNode&&z.parentNode.contains(z)&&t()}))}(o,$.unmount):$.unmount()},hideWithInteractivity:function(e){ne().addEventListener("mousemove",W),c(H,W),W(e)},enable:function(){$.state.isEnabled=!0},disable:function(){$.hide(),$.state.isEnabled=!1},unmount:function(){$.state.isVisible&&$.hide();if(!$.state.isMounted)return;Te(),Ae().forEach((function(e){e._tippy.unmount()})),z.parentNode&&z.parentNode.removeChild(z);U=U.filter((function(e){return e!==$})),$.state.isMounted=!1,ae("onHidden",[$])},destroy:function(){if($.state.isDestroyed)return;$.clearDelayTimeouts(),$.unmount(),be(),delete o._tippy,$.state.isDestroyed=!0,ae("onDestroy",[$])}};if(!M.render)return $;var q=M.render($),z=q.popper,J=q.onUpdate;z.setAttribute("data-tippy-root",""),z.id="tippy-"+$.id,$.popper=z,o._tippy=$,z._tippy=$;var G=Y.map((function(e){return e.fn($)})),K=o.hasAttribute("aria-expanded");return he(),ue(),ie(),ae("onCreate",[$]),M.showOnCreate&&Le(),z.addEventListener("mouseenter",(function(){$.props.interactive&&$.state.isVisible&&$.clearDelayTimeouts()})),z.addEventListener("mouseleave",(function(){$.props.interactive&&$.props.trigger.indexOf("mouseenter")>=0&&ne().addEventListener("mousemove",W)})),$;function Q(){var e=$.props.touch;return Array.isArray(e)?e:[e,0]}function Z(){return"hold"===Q()[0]}function ee(){var e;return!(null==(e=$.props.render)||!e.$$tippy)}function te(){return L||o}function ne(){var e=te().parentNode;return e?w(e):document}function re(){return S(z)}function oe(e){return $.state.isMounted&&!$.state.isVisible||x.isTouch||C&&"focus"===C.type?0:r($.props.delay,e?0:1,R.delay)}function ie(e){void 0===e&&(e=!1),z.style.pointerEvents=$.props.interactive&&!e?"":"none",z.style.zIndex=""+$.props.zIndex}function ae(e,t,n){var r;(void 0===n&&(n=!0),G.forEach((function(n){n[e]&&n[e].apply(n,t)})),n)&&(r=$.props)[e].apply(r,t)}function se(){var e=$.props.aria;if(e.content){var t="aria-"+e.content,n=z.id;u($.props.triggerTarget||o).forEach((function(e){var r=e.getAttribute(t);if($.state.isVisible)e.setAttribute(t,r?r+" "+n:n);else{var o=r&&r.replace(n,"").trim();o?e.setAttribute(t,o):e.removeAttribute(t)}}))}}function ue(){!K&&$.props.aria.expanded&&u($.props.triggerTarget||o).forEach((function(e){$.props.interactive?e.setAttribute("aria-expanded",$.state.isVisible&&e===te()?"true":"false"):e.removeAttribute("aria-expanded")}))}function ce(){ne().removeEventListener("mousemove",W),H=H.filter((function(e){return e!==W}))}function pe(e){if(!x.isTouch||!N&&"mousedown"!==e.type){var t=e.composedPath&&e.composedPath()[0]||e.target;if(!$.props.interactive||!O(z,t)){if(u($.props.triggerTarget||o).some((function(e){return O(e,t)}))){if(x.isTouch)return;if($.state.isVisible&&$.props.trigger.indexOf("click")>=0)return}else ae("onClickOutside",[$,e]);!0===$.props.hideOnClick&&($.clearDelayTimeouts(),$.hide(),I=!0,setTimeout((function(){I=!1})),$.state.isMounted||ve())}}}function fe(){N=!0}function le(){N=!1}function de(){var e=ne();e.addEventListener("mousedown",pe,!0),e.addEventListener("touchend",pe,t),e.addEventListener("touchstart",le,t),e.addEventListener("touchmove",fe,t)}function ve(){var e=ne();e.removeEventListener("mousedown",pe,!0),e.removeEventListener("touchend",pe,t),e.removeEventListener("touchstart",le,t),e.removeEventListener("touchmove",fe,t)}function me(e,t){var n=re().box;function r(e){e.target===n&&(E(n,"remove",r),t())}if(0===e)return t();E(n,"remove",T),E(n,"add",r),T=r}function ge(e,t,n){void 0===n&&(n=!1),u($.props.triggerTarget||o).forEach((function(r){r.addEventListener(e,t,n),F.push({node:r,eventType:e,handler:t,options:n})}))}function he(){var e;Z()&&(ge("touchstart",ye,{passive:!0}),ge("touchend",Ee,{passive:!0})),(e=$.props.trigger,e.split(/\s+/).filter(Boolean)).forEach((function(e){if("manual"!==e)switch(ge(e,ye),e){case"mouseenter":ge("mouseleave",Ee);break;case"focus":ge(D?"focusout":"blur",Oe);break;case"focusin":ge("focusout",Oe)}}))}function be(){F.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),F=[]}function ye(e){var t,n=!1;if($.state.isEnabled&&!xe(e)&&!I){var r="focus"===(null==(t=C)?void 0:t.type);C=e,L=e.currentTarget,ue(),!$.state.isVisible&&m(e)&&H.forEach((function(t){return t(e)})),"click"===e.type&&($.props.trigger.indexOf("mouseenter")<0||V)&&!1!==$.props.hideOnClick&&$.state.isVisible?n=!0:Le(e),"click"===e.type&&(V=!n),n&&!r&&De(e)}}function we(e){var t=e.target,n=te().contains(t)||z.contains(t);"mousemove"===e.type&&n||function(e,t){var n=t.clientX,r=t.clientY;return e.every((function(e){var t=e.popperRect,o=e.popperState,i=e.props.interactiveBorder,a=p(o.placement),s=o.modifiersData.offset;if(!s)return!0;var u="bottom"===a?s.top.y:0,c="top"===a?s.bottom.y:0,f="right"===a?s.left.x:0,l="left"===a?s.right.x:0,d=t.top-r+u>i,v=r-t.bottom-c>i,m=t.left-n+f>i,g=n-t.right-l>i;return d||v||m||g}))}(Ae().concat(z).map((function(e){var t,n=null==(t=e._tippy.popperInstance)?void 0:t.state;return n?{popperRect:e.getBoundingClientRect(),popperState:n,props:M}:null})).filter(Boolean),e)&&(ce(),De(e))}function Ee(e){xe(e)||$.props.trigger.indexOf("click")>=0&&V||($.props.interactive?$.hideWithInteractivity(e):De(e))}function Oe(e){$.props.trigger.indexOf("focusin")<0&&e.target!==te()||$.props.interactive&&e.relatedTarget&&z.contains(e.relatedTarget)||De(e)}function xe(e){return!!x.isTouch&&Z()!==e.type.indexOf("touch")>=0}function Ce(){Te();var t=$.props,n=t.popperOptions,r=t.placement,i=t.offset,a=t.getReferenceClientRect,s=t.moveTransition,u=ee()?S(z).arrow:null,c=a?{getBoundingClientRect:a,contextElement:a.contextElement||te()}:o,p=[{name:"offset",options:{offset:i}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!s}},{name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;if(ee()){var n=re().box;["placement","reference-hidden","escaped"].forEach((function(e){"placement"===e?n.setAttribute("data-placement",t.placement):t.attributes.popper["data-popper-"+e]?n.setAttribute("data-"+e,""):n.removeAttribute("data-"+e)})),t.attributes.popper={}}}}];ee()&&u&&p.push({name:"arrow",options:{element:u,padding:3}}),p.push.apply(p,(null==n?void 0:n.modifiers)||[]),$.popperInstance=e.createPopper(c,z,Object.assign({},n,{placement:r,onFirstUpdate:A,modifiers:p}))}function Te(){$.popperInstance&&($.popperInstance.destroy(),$.popperInstance=null)}function Ae(){return f(z.querySelectorAll("[data-tippy-root]"))}function Le(e){$.clearDelayTimeouts(),e&&ae("onTrigger",[$,e]),de();var t=oe(!0),n=Q(),r=n[0],o=n[1];x.isTouch&&"hold"===r&&o&&(t=o),t?v=setTimeout((function(){$.show()}),t):$.show()}function De(e){if($.clearDelayTimeouts(),ae("onUntrigger",[$,e]),$.state.isVisible){if(!($.props.trigger.indexOf("mouseenter")>=0&&$.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(e.type)>=0&&V)){var t=oe(!1);t?g=setTimeout((function(){$.state.isVisible&&$.hide()}),t):h=requestAnimationFrame((function(){$.hide()}))}}else ve()}}function F(e,n){void 0===n&&(n={});var r=R.plugins.concat(n.plugins||[]);document.addEventListener("touchstart",T,t),window.addEventListener("blur",L);var o=Object.assign({},n,{plugins:r}),i=h(e).reduce((function(e,t){var n=t&&_(t,o);return n&&e.push(n),e}),[]);return v(e)?i[0]:i}F.defaultProps=R,F.setDefaultProps=function(e){Object.keys(e).forEach((function(t){R[t]=e[t]}))},F.currentInput=x;var W=Object.assign({},e.applyStyles,{effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow)}}),X={mouseover:"mouseenter",focusin:"focus",click:"click"};var Y={name:"animateFill",defaultValue:!1,fn:function(e){var t;if(null==(t=e.props.render)||!t.$$tippy)return{};var n=S(e.popper),r=n.box,o=n.content,i=e.props.animateFill?function(){var e=d();return e.className="tippy-backdrop",y([e],"hidden"),e}():null;return{onCreate:function(){i&&(r.insertBefore(i,r.firstElementChild),r.setAttribute("data-animatefill",""),r.style.overflow="hidden",e.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(i){var e=r.style.transitionDuration,t=Number(e.replace("ms",""));o.style.transitionDelay=Math.round(t/10)+"ms",i.style.transitionDuration=e,y([i],"visible")}},onShow:function(){i&&(i.style.transitionDuration="0ms")},onHide:function(){i&&y([i],"hidden")}}}};var $={clientX:0,clientY:0},q=[];function z(e){var t=e.clientX,n=e.clientY;$={clientX:t,clientY:n}}var J={name:"followCursor",defaultValue:!1,fn:function(e){var t=e.reference,n=w(e.props.triggerTarget||t),r=!1,o=!1,i=!0,a=e.props;function s(){return"initial"===e.props.followCursor&&e.state.isVisible}function u(){n.addEventListener("mousemove",f)}function c(){n.removeEventListener("mousemove",f)}function p(){r=!0,e.setProps({getReferenceClientRect:null}),r=!1}function f(n){var r=!n.target||t.contains(n.target),o=e.props.followCursor,i=n.clientX,a=n.clientY,s=t.getBoundingClientRect(),u=i-s.left,c=a-s.top;!r&&e.props.interactive||e.setProps({getReferenceClientRect:function(){var e=t.getBoundingClientRect(),n=i,r=a;"initial"===o&&(n=e.left+u,r=e.top+c);var s="horizontal"===o?e.top:r,p="vertical"===o?e.right:n,f="horizontal"===o?e.bottom:r,l="vertical"===o?e.left:n;return{width:p-l,height:f-s,top:s,right:p,bottom:f,left:l}}})}function l(){e.props.followCursor&&(q.push({instance:e,doc:n}),function(e){e.addEventListener("mousemove",z)}(n))}function d(){0===(q=q.filter((function(t){return t.instance!==e}))).filter((function(e){return e.doc===n})).length&&function(e){e.removeEventListener("mousemove",z)}(n)}return{onCreate:l,onDestroy:d,onBeforeUpdate:function(){a=e.props},onAfterUpdate:function(t,n){var i=n.followCursor;r||void 0!==i&&a.followCursor!==i&&(d(),i?(l(),!e.state.isMounted||o||s()||u()):(c(),p()))},onMount:function(){e.props.followCursor&&!o&&(i&&(f($),i=!1),s()||u())},onTrigger:function(e,t){m(t)&&($={clientX:t.clientX,clientY:t.clientY}),o="focus"===t.type},onHidden:function(){e.props.followCursor&&(p(),c(),i=!0)}}}};var G={name:"inlinePositioning",defaultValue:!1,fn:function(e){var t,n=e.reference;var r=-1,o=!1,i=[],a={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(o){var a=o.state;e.props.inlinePositioning&&(-1!==i.indexOf(a.placement)&&(i=[]),t!==a.placement&&-1===i.indexOf(a.placement)&&(i.push(a.placement),e.setProps({getReferenceClientRect:function(){return function(e){return function(e,t,n,r){if(n.length<2||null===e)return t;if(2===n.length&&r>=0&&n[0].left>n[1].right)return n[r]||t;switch(e){case"top":case"bottom":var o=n[0],i=n[n.length-1],a="top"===e,s=o.top,u=i.bottom,c=a?o.left:i.left,p=a?o.right:i.right;return{top:s,bottom:u,left:c,right:p,width:p-c,height:u-s};case"left":case"right":var f=Math.min.apply(Math,n.map((function(e){return e.left}))),l=Math.max.apply(Math,n.map((function(e){return e.right}))),d=n.filter((function(t){return"left"===e?t.left===f:t.right===l})),v=d[0].top,m=d[d.length-1].bottom;return{top:v,bottom:m,left:f,right:l,width:l-f,height:m-v};default:return t}}(p(e),n.getBoundingClientRect(),f(n.getClientRects()),r)}(a.placement)}})),t=a.placement)}};function s(){var t;o||(t=function(e,t){var n;return{popperOptions:Object.assign({},e.popperOptions,{modifiers:[].concat(((null==(n=e.popperOptions)?void 0:n.modifiers)||[]).filter((function(e){return e.name!==t.name})),[t])})}}(e.props,a),o=!0,e.setProps(t),o=!1)}return{onCreate:s,onAfterUpdate:s,onTrigger:function(t,n){if(m(n)){var o=f(e.reference.getClientRects()),i=o.find((function(e){return e.left-2<=n.clientX&&e.right+2>=n.clientX&&e.top-2<=n.clientY&&e.bottom+2>=n.clientY})),a=o.indexOf(i);r=a>-1?a:r}},onHidden:function(){r=-1}}}};var K={name:"sticky",defaultValue:!1,fn:function(e){var t=e.reference,n=e.popper;function r(t){return!0===e.props.sticky||e.props.sticky===t}var o=null,i=null;function a(){var s=r("reference")?(e.popperInstance?e.popperInstance.state.elements.reference:t).getBoundingClientRect():null,u=r("popper")?n.getBoundingClientRect():null;(s&&Q(o,s)||u&&Q(i,u))&&e.popperInstance&&e.popperInstance.update(),o=s,i=u,e.state.isMounted&&requestAnimationFrame(a)}return{onMount:function(){e.props.sticky&&a()}}}};function Q(e,t){return!e||!t||(e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left)}return F.setDefaultProps({plugins:[Y,J,G,K],render:N}),F.createSingleton=function(e,t){var n;void 0===t&&(t={});var r,o=e,i=[],a=[],c=t.overrides,p=[],f=!1;function l(){a=o.map((function(e){return u(e.props.triggerTarget||e.reference)})).reduce((function(e,t){return e.concat(t)}),[])}function v(){i=o.map((function(e){return e.reference}))}function m(e){o.forEach((function(t){e?t.enable():t.disable()}))}function g(e){return o.map((function(t){var n=t.setProps;return t.setProps=function(o){n(o),t.reference===r&&e.setProps(o)},function(){t.setProps=n}}))}function h(e,t){var n=a.indexOf(t);if(t!==r){r=t;var s=(c||[]).concat("content").reduce((function(e,t){return e[t]=o[n].props[t],e}),{});e.setProps(Object.assign({},s,{getReferenceClientRect:"function"==typeof s.getReferenceClientRect?s.getReferenceClientRect:function(){var e;return null==(e=i[n])?void 0:e.getBoundingClientRect()}}))}}m(!1),v(),l();var b={fn:function(){return{onDestroy:function(){m(!0)},onHidden:function(){r=null},onClickOutside:function(e){e.props.showOnCreate&&!f&&(f=!0,r=null)},onShow:function(e){e.props.showOnCreate&&!f&&(f=!0,h(e,i[0]))},onTrigger:function(e,t){h(e,t.currentTarget)}}}},y=F(d(),Object.assign({},s(t,["overrides"]),{plugins:[b].concat(t.plugins||[]),triggerTarget:a,popperOptions:Object.assign({},t.popperOptions,{modifiers:[].concat((null==(n=t.popperOptions)?void 0:n.modifiers)||[],[W])})})),w=y.show;y.show=function(e){if(w(),!r&&null==e)return h(y,i[0]);if(!r||null!=e){if("number"==typeof e)return i[e]&&h(y,i[e]);if(o.indexOf(e)>=0){var t=e.reference;return h(y,t)}return i.indexOf(e)>=0?h(y,e):void 0}},y.showNext=function(){var e=i[0];if(!r)return y.show(0);var t=i.indexOf(r);y.show(i[t+1]||e)},y.showPrevious=function(){var e=i[i.length-1];if(!r)return y.show(e);var t=i.indexOf(r),n=i[t-1]||e;y.show(n)};var E=y.setProps;return y.setProps=function(e){c=e.overrides||c,E(e)},y.setInstances=function(e){m(!0),p.forEach((function(e){return e()})),o=e,m(!1),v(),l(),p=g(y),y.setProps({triggerTarget:a})},p=g(y),y},F.delegate=function(e,n){var r=[],o=[],i=!1,a=n.target,c=s(n,["target"]),p=Object.assign({},c,{trigger:"manual",touch:!1}),f=Object.assign({touch:R.touch},c,{showOnCreate:!0}),l=F(e,p);function d(e){if(e.target&&!i){var t=e.target.closest(a);if(t){var r=t.getAttribute("data-tippy-trigger")||n.trigger||R.trigger;if(!t._tippy&&!("touchstart"===e.type&&"boolean"==typeof f.touch||"touchstart"!==e.type&&r.indexOf(X[e.type])<0)){var s=F(t,f);s&&(o=o.concat(s))}}}}function v(e,t,n,o){void 0===o&&(o=!1),e.addEventListener(t,n,o),r.push({node:e,eventType:t,handler:n,options:o})}return u(l).forEach((function(e){var n=e.destroy,a=e.enable,s=e.disable;e.destroy=function(e){void 0===e&&(e=!0),e&&o.forEach((function(e){e.destroy()})),o=[],r.forEach((function(e){var t=e.node,n=e.eventType,r=e.handler,o=e.options;t.removeEventListener(n,r,o)})),r=[],n()},e.enable=function(){a(),o.forEach((function(e){return e.enable()})),i=!1},e.disable=function(){s(),o.forEach((function(e){return e.disable()})),i=!0},function(e){var n=e.reference;v(n,"touchstart",d,t),v(n,"mouseover",d),v(n,"focusin",d),v(n,"click",d)}(e)})),l},F.hideAll=function(e){var t=void 0===e?{}:e,n=t.exclude,r=t.duration;U.forEach((function(e){var t=!1;if(n&&(t=g(n)?e.reference===n:e.popper===n.popper),!t){var o=e.props.duration;e.setProps({duration:r}),e.hide(),e.state.isDestroyed||e.setProps({duration:o})}}))},F.roundArrow='',F})); + diff --git a/site_libs/quarto-nav/headroom.min.js b/site_libs/quarto-nav/headroom.min.js new file mode 100644 index 0000000..b08f1df --- /dev/null +++ b/site_libs/quarto-nav/headroom.min.js @@ -0,0 +1,7 @@ +/*! + * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it + * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js + * License: MIT + */ + +!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).Headroom=n()}(this,function(){"use strict";function t(){return"undefined"!=typeof window}function d(t){return function(t){return t&&t.document&&function(t){return 9===t.nodeType}(t.document)}(t)?function(t){var n=t.document,o=n.body,s=n.documentElement;return{scrollHeight:function(){return Math.max(o.scrollHeight,s.scrollHeight,o.offsetHeight,s.offsetHeight,o.clientHeight,s.clientHeight)},height:function(){return t.innerHeight||s.clientHeight||o.clientHeight},scrollY:function(){return void 0!==t.pageYOffset?t.pageYOffset:(s||o.parentNode||o).scrollTop}}}(t):function(t){return{scrollHeight:function(){return Math.max(t.scrollHeight,t.offsetHeight,t.clientHeight)},height:function(){return Math.max(t.offsetHeight,t.clientHeight)},scrollY:function(){return t.scrollTop}}}(t)}function n(t,s,e){var n,o=function(){var n=!1;try{var t={get passive(){n=!0}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){n=!1}return n}(),i=!1,r=d(t),l=r.scrollY(),a={};function c(){var t=Math.round(r.scrollY()),n=r.height(),o=r.scrollHeight();a.scrollY=t,a.lastScrollY=l,a.direction=ls.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},s.cutsTheMustard=!!(t()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s}); diff --git a/site_libs/quarto-nav/quarto-nav.js b/site_libs/quarto-nav/quarto-nav.js new file mode 100644 index 0000000..f6a53b1 --- /dev/null +++ b/site_libs/quarto-nav/quarto-nav.js @@ -0,0 +1,289 @@ +const headroomChanged = new CustomEvent("quarto-hrChanged", { + detail: {}, + bubbles: true, + cancelable: false, + composed: false, +}); + +window.document.addEventListener("DOMContentLoaded", function () { + let init = false; + + // Manage the back to top button, if one is present. + let lastScrollTop = window.pageYOffset || document.documentElement.scrollTop; + const scrollDownBuffer = 5; + const scrollUpBuffer = 35; + const btn = document.getElementById("quarto-back-to-top"); + const hideBackToTop = () => { + btn.style.display = "none"; + }; + const showBackToTop = () => { + btn.style.display = "inline-block"; + }; + if (btn) { + window.document.addEventListener( + "scroll", + function () { + const currentScrollTop = + window.pageYOffset || document.documentElement.scrollTop; + + // Shows and hides the button 'intelligently' as the user scrolls + if (currentScrollTop - scrollDownBuffer > lastScrollTop) { + hideBackToTop(); + lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; + } else if (currentScrollTop < lastScrollTop - scrollUpBuffer) { + showBackToTop(); + lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; + } + + // Show the button at the bottom, hides it at the top + if (currentScrollTop <= 0) { + hideBackToTop(); + } else if ( + window.innerHeight + currentScrollTop >= + document.body.offsetHeight + ) { + showBackToTop(); + } + }, + false + ); + } + + function throttle(func, wait) { + var timeout; + return function () { + const context = this; + const args = arguments; + const later = function () { + clearTimeout(timeout); + timeout = null; + func.apply(context, args); + }; + + if (!timeout) { + timeout = setTimeout(later, wait); + } + }; + } + + function headerOffset() { + // Set an offset if there is are fixed top navbar + const headerEl = window.document.querySelector("header.fixed-top"); + if (headerEl) { + return headerEl.clientHeight; + } else { + return 0; + } + } + + function footerOffset() { + const footerEl = window.document.querySelector("footer.footer"); + if (footerEl) { + return footerEl.clientHeight; + } else { + return 0; + } + } + + function dashboardOffset() { + const dashboardNavEl = window.document.getElementById( + "quarto-dashboard-header" + ); + if (dashboardNavEl !== null) { + return dashboardNavEl.clientHeight; + } else { + return 0; + } + } + + function updateDocumentOffsetWithoutAnimation() { + updateDocumentOffset(false); + } + + function updateDocumentOffset(animated) { + // set body offset + const topOffset = headerOffset(); + const bodyOffset = topOffset + footerOffset() + dashboardOffset(); + const bodyEl = window.document.body; + bodyEl.setAttribute("data-bs-offset", topOffset); + bodyEl.style.paddingTop = topOffset + "px"; + + // deal with sidebar offsets + const sidebars = window.document.querySelectorAll( + ".sidebar, .headroom-target" + ); + sidebars.forEach((sidebar) => { + if (!animated) { + sidebar.classList.add("notransition"); + // Remove the no transition class after the animation has time to complete + setTimeout(function () { + sidebar.classList.remove("notransition"); + }, 201); + } + + if (window.Headroom && sidebar.classList.contains("sidebar-unpinned")) { + sidebar.style.top = "0"; + sidebar.style.maxHeight = "100vh"; + } else { + sidebar.style.top = topOffset + "px"; + sidebar.style.maxHeight = "calc(100vh - " + topOffset + "px)"; + } + }); + + // allow space for footer + const mainContainer = window.document.querySelector(".quarto-container"); + if (mainContainer) { + mainContainer.style.minHeight = "calc(100vh - " + bodyOffset + "px)"; + } + + // link offset + let linkStyle = window.document.querySelector("#quarto-target-style"); + if (!linkStyle) { + linkStyle = window.document.createElement("style"); + linkStyle.setAttribute("id", "quarto-target-style"); + window.document.head.appendChild(linkStyle); + } + while (linkStyle.firstChild) { + linkStyle.removeChild(linkStyle.firstChild); + } + if (topOffset > 0) { + linkStyle.appendChild( + window.document.createTextNode(` + section:target::before { + content: ""; + display: block; + height: ${topOffset}px; + margin: -${topOffset}px 0 0; + }`) + ); + } + if (init) { + window.dispatchEvent(headroomChanged); + } + init = true; + } + + // initialize headroom + var header = window.document.querySelector("#quarto-header"); + if (header && window.Headroom) { + const headroom = new window.Headroom(header, { + tolerance: 5, + onPin: function () { + const sidebars = window.document.querySelectorAll( + ".sidebar, .headroom-target" + ); + sidebars.forEach((sidebar) => { + sidebar.classList.remove("sidebar-unpinned"); + }); + updateDocumentOffset(); + }, + onUnpin: function () { + const sidebars = window.document.querySelectorAll( + ".sidebar, .headroom-target" + ); + sidebars.forEach((sidebar) => { + sidebar.classList.add("sidebar-unpinned"); + }); + updateDocumentOffset(); + }, + }); + headroom.init(); + + let frozen = false; + window.quartoToggleHeadroom = function () { + if (frozen) { + headroom.unfreeze(); + frozen = false; + } else { + headroom.freeze(); + frozen = true; + } + }; + } + + window.addEventListener( + "hashchange", + function (e) { + if ( + getComputedStyle(document.documentElement).scrollBehavior !== "smooth" + ) { + window.scrollTo(0, window.pageYOffset - headerOffset()); + } + }, + false + ); + + // Observe size changed for the header + const headerEl = window.document.querySelector("header.fixed-top"); + if (headerEl && window.ResizeObserver) { + const observer = new window.ResizeObserver(() => { + setTimeout(updateDocumentOffsetWithoutAnimation, 0); + }); + observer.observe(headerEl, { + attributes: true, + childList: true, + characterData: true, + }); + } else { + window.addEventListener( + "resize", + throttle(updateDocumentOffsetWithoutAnimation, 50) + ); + } + setTimeout(updateDocumentOffsetWithoutAnimation, 250); + + // fixup index.html links if we aren't on the filesystem + if (window.location.protocol !== "file:") { + const links = window.document.querySelectorAll("a"); + for (let i = 0; i < links.length; i++) { + if (links[i].href) { + links[i].dataset.originalHref = links[i].href; + links[i].href = links[i].href.replace(/\/index\.html/, "/"); + } + } + + // Fixup any sharing links that require urls + // Append url to any sharing urls + const sharingLinks = window.document.querySelectorAll( + "a.sidebar-tools-main-item, a.quarto-navigation-tool, a.quarto-navbar-tools, a.quarto-navbar-tools-item" + ); + for (let i = 0; i < sharingLinks.length; i++) { + const sharingLink = sharingLinks[i]; + const href = sharingLink.getAttribute("href"); + if (href) { + sharingLink.setAttribute( + "href", + href.replace("|url|", window.location.href) + ); + } + } + + // Scroll the active navigation item into view, if necessary + const navSidebar = window.document.querySelector("nav#quarto-sidebar"); + if (navSidebar) { + // Find the active item + const activeItem = navSidebar.querySelector("li.sidebar-item a.active"); + if (activeItem) { + // Wait for the scroll height and height to resolve by observing size changes on the + // nav element that is scrollable + const resizeObserver = new ResizeObserver((_entries) => { + // The bottom of the element + const elBottom = activeItem.offsetTop; + const viewBottom = navSidebar.scrollTop + navSidebar.clientHeight; + + // The element height and scroll height are the same, then we are still loading + if (viewBottom !== navSidebar.scrollHeight) { + // Determine if the item isn't visible and scroll to it + if (elBottom >= viewBottom) { + navSidebar.scrollTop = elBottom; + } + + // stop observing now since we've completed the scroll + resizeObserver.unobserve(navSidebar); + } + }); + resizeObserver.observe(navSidebar); + } + } + } +}); diff --git a/site_libs/quarto-search/autocomplete.umd.js b/site_libs/quarto-search/autocomplete.umd.js new file mode 100644 index 0000000..ae0063a --- /dev/null +++ b/site_libs/quarto-search/autocomplete.umd.js @@ -0,0 +1,3 @@ +/*! @algolia/autocomplete-js 1.11.1 | MIT License | © Algolia, Inc. and contributors | https://github.com/algolia/autocomplete */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@algolia/autocomplete-js"]={})}(this,(function(e){"use strict";function t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function n(e){for(var n=1;n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,u,a=[],l=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(a.push(r.value),a.length!==t);l=!0);}catch(e){c=!0,o=e}finally{try{if(!l&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(c)throw o}}return a}}(e,t)||c(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||c(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function N(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r=3||2===n&&r>=4||1===n&&r>=10);function i(t,n,r){if(o&&void 0!==r){var i=r[0].__autocomplete_algoliaCredentials,u={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(D(n),[{headers:u}]))}else e.apply(void 0,[t].concat(D(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDsAfterSearch",B(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDs",B(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDsAfterSearch",B(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDs",B(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&t.reduce((function(e,t){var n=t.items,r=k(t,A);return[].concat(D(e),D(q(N(N({},r),{},{objectIDs:(null==n?void 0:n.map((function(e){return e.objectID})))||r.objectIDs})).map((function(e){return{items:n,payload:e}}))))}),[]).forEach((function(e){var t=e.items;return i("viewedObjectIDs",[e.payload],t)}))},viewedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function F(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function L(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function U(e){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U(e)}function M(e){return function(e){if(Array.isArray(e))return H(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return H(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return H(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function H(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&z({onItemsChange:r,items:n,insights:a,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive;function l(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:W({clickAnalytics:!0},e?{userToken:e}:{}),insights:a}})}u("addAlgoliaAgent","insights-plugin"),l(),u("onUserTokenChange",l),u("getUserToken",null,(function(e,t){l(t)})),n((function(e){var t=e.item,n=e.state,r=e.event,i=e.source;L(t)&&o({state:n,event:r,insights:a,item:t,insightsEvents:[W({eventName:"Item Selected"},j({item:t,items:i.getItems().filter(L)}))]})})),r((function(e){var t=e.item,n=e.source,r=e.state,o=e.event;L(t)&&i({state:r,event:o,insights:a,item:t,insightsEvents:[W({eventName:"Item Active"},j({item:t,items:n.getItems().filter(L)}))]})}))},onStateChange:function(e){var t=e.state;c({state:t})},__autocomplete_pluginOptions:e}}function J(e,t){var n=t;return{then:function(t,r){return J(e.then(Y(t,n,e),Y(r,n,e)),n)},catch:function(t){return J(e.catch(Y(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),J(e.finally(Y(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function X(e){return J(e,{isCanceled:!1,onCancelList:[]})}function Y(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function Z(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function ee(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function te(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:d(),plugins:o,initialState:he({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(ye(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:O,onResolve:O};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=te(te({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return m(e)})).then((function(e){return e.map((function(e){return he(he({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:he({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function Se(e){return Se="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Se(e)}function je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pe(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var He,Ve,We,Ke=null,Qe=(He=-1,Ve=-1,We=void 0,function(e){var t=++He;return Promise.resolve(e).then((function(e){return We&&t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function et(e){return et="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},et(e)}var tt=["props","refresh","store"],nt=["inputElement","formElement","panelElement"],rt=["inputElement"],ot=["inputElement","maxLength"],it=["source"],ut=["item","source"];function at(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function lt(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function ft(e){var t=e.props,n=e.refresh,r=e.store,o=st(e,tt);return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,i=e.panelElement;function u(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,i].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return lt({onTouchStart:u,onMouseDown:u,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},st(e,nt))},getRootProps:function(e){return lt({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return ie(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":ie(t.id,"label")},e)},getFormProps:function(e){return e.inputElement,lt({action:"",noValidate:!0,role:"search",onSubmit:function(i){var u;i.preventDefault(),t.onSubmit(lt({event:i,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(u=e.inputElement)||void 0===u||u.blur()},onReset:function(i){var u;i.preventDefault(),t.onReset(lt({event:i,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(u=e.inputElement)||void 0===u||u.focus()}},st(e,rt))},getLabelProps:function(e){return lt({htmlFor:ie(t.id,"input"),id:ie(t.id,"label")},e)},getInputProps:function(e){var i;function u(e){(t.openOnFocus||Boolean(r.getState().query))&&$e(lt({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var a=e||{};a.inputElement;var l=a.maxLength,c=void 0===l?512:l,s=st(a,ot),f=oe(r.getState()),p=function(e){return Boolean(e&&e.match(ue))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),m=t.enterKeyHint||(null!=f&&f.itemUrl&&!p?"go":"search");return lt({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?ie(t.id,"item-".concat(r.getState().activeItemId),null==f?void 0:f.source):void 0,"aria-controls":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return ie(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":ie(t.id,"label"),value:r.getState().completion||r.getState().query,id:ie(t.id,"input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:m,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:c,type:"search",onChange:function(e){$e(lt({event:e,props:t,query:e.currentTarget.value.slice(0,c),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,i=Ze(e,Ge);if("ArrowUp"===t.key||"ArrowDown"===t.key){var u=function(){var e=oe(o.getState()),t=n.environment.document.getElementById(ie(n.id,"item-".concat(o.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},a=function(){var e=oe(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,u=e.itemInputValue,a=e.itemUrl,l=e.source;l.onActive(Xe({event:t,item:n,itemInputValue:u,itemUrl:a,refresh:r,source:l,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?$e(Xe({event:t,props:n,query:o.getState().query,refresh:r,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),a(),setTimeout(u,0)})):(o.dispatch(t.key,{}),a(),u())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var l=oe(o.getState()),c=l.item,s=l.itemInputValue,f=l.itemUrl,p=l.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(p.onSelect(Xe({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),n.navigator.navigateNewTab({itemUrl:f,item:c,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(p.onSelect(Xe({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),n.navigator.navigateNewWindow({itemUrl:f,item:c,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return p.onSelect(Xe({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i)),void n.navigator.navigate({itemUrl:f,item:c,state:o.getState()});$e(Xe({event:t,nextState:{isOpen:!1},props:n,query:s,refresh:r,store:o},i)).then((function(){p.onSelect(Xe({event:t,item:c,itemInputValue:s,itemUrl:f,refresh:r,source:p,state:o.getState()},i))}))}}}(lt({event:e,props:t,refresh:n,store:r},o))},onFocus:u,onBlur:O,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||u(n)}},s)},getPanelProps:function(e){return lt({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.source,o=st(n,it);return lt({role:"listbox","aria-labelledby":ie(t.id,"label"),id:ie(t.id,"list",r)},o)},getItemProps:function(e){var i=e.item,u=e.source,a=st(e,ut);return lt({id:ie(t.id,"item-".concat(i.__autocomplete_id),u),role:"option","aria-selected":r.getState().activeItemId===i.__autocomplete_id,onMouseMove:function(e){if(i.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",i.__autocomplete_id);var t=oe(r.getState());if(null!==r.getState().activeItemId&&t){var u=t.item,a=t.itemInputValue,l=t.itemUrl,c=t.source;c.onActive(lt({event:e,item:u,itemInputValue:a,itemUrl:l,refresh:n,source:c,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var a=u.getItemInputValue({item:i,state:r.getState()}),l=u.getItemUrl({item:i,state:r.getState()});(l?Promise.resolve():$e(lt({event:e,nextState:{isOpen:!1},props:t,query:a,refresh:n,store:r},o))).then((function(){u.onSelect(lt({event:e,item:i,itemInputValue:a,itemUrl:l,refresh:n,source:u,state:r.getState()},o))}))}},a)}}}function pt(e){return pt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},pt(e)}function mt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function vt(e){for(var t=1;t=5&&((o||!e&&5===r)&&(u.push(r,0,o,n),r=6),e&&(u.push(r,e,0,n),r=6)),o=""},l=0;l"===t?(r=1,o=""):o=t+o[0]:i?t===i?i="":o+=t:'"'===t||"'"===t?i=t:">"===t?(a(),r=1):r&&("="===t?(r=5,n=o,o=""):"/"===t&&(r<5||">"===e[l][c+1])?(a(),3===r&&(u=u[0]),r=u,(u=u[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(a(),r=2):o+=t),3===r&&"!--"===o&&(r=4,u=u[0])}return a(),u}(e)),t),arguments,[])).length>1?t:t[0]}var kt=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n};function xt(e,t){if("string"==typeof t){var n=e.document.querySelector(t);return"The element ".concat(JSON.stringify(t)," is not in the document."),n}return t}function Nt(){for(var e=arguments.length,t=new Array(e),n=0;n2&&(u.children=arguments.length>3?Jt.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(i in e.defaultProps)void 0===u[i]&&(u[i]=e.defaultProps[i]);return sn(e,u,r,o,null)}function sn(e,t,n,r,o){var i={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++Yt:o};return null==o&&null!=Xt.vnode&&Xt.vnode(i),i}function fn(e){return e.children}function pn(e,t){this.props=e,this.context=t}function mn(e,t){if(null==t)return e.__?mn(e.__,e.__.__k.indexOf(e)+1):null;for(var n;tt&&Zt.sort(nn));yn.__r=0}function bn(e,t,n,r,o,i,u,a,l,c){var s,f,p,m,v,d,y,b=r&&r.__k||on,g=b.length;for(n.__k=[],s=0;s0?sn(m.type,m.props,m.key,m.ref?m.ref:null,m.__v):m)){if(m.__=n,m.__b=n.__b+1,null===(p=b[s])||p&&m.key==p.key&&m.type===p.type)b[s]=void 0;else for(f=0;f=0;t--)if((n=e.__k[t])&&(r=On(n)))return r;return null}function _n(e,t,n){"-"===t[0]?e.setProperty(t,null==n?"":n):e[t]=null==n?"":"number"!=typeof n||un.test(t)?n:n+"px"}function Sn(e,t,n,r,o){var i;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof r&&(e.style.cssText=r=""),r)for(t in r)n&&t in n||_n(e.style,t,"");if(n)for(t in n)r&&n[t]===r[t]||_n(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])i=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+i]=n,n?r||e.addEventListener(t,i?Pn:jn,i):e.removeEventListener(t,i?Pn:jn,i);else if("dangerouslySetInnerHTML"!==t){if(o)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!==t&&"height"!==t&&"href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null==n||!1===n&&"-"!==t[4]?e.removeAttribute(t):e.setAttribute(t,n))}}function jn(e){return this.l[e.type+!1](Xt.event?Xt.event(e):e)}function Pn(e){return this.l[e.type+!0](Xt.event?Xt.event(e):e)}function wn(e,t,n,r,o,i,u,a,l){var c,s,f,p,m,v,d,y,b,g,h,O,_,S,j,P=t.type;if(void 0!==t.constructor)return null;null!=n.__h&&(l=n.__h,a=t.__e=n.__e,t.__h=null,i=[a]),(c=Xt.__b)&&c(t);try{e:if("function"==typeof P){if(y=t.props,b=(c=P.contextType)&&r[c.__c],g=c?b?b.props.value:c.__:r,n.__c?d=(s=t.__c=n.__c).__=s.__E:("prototype"in P&&P.prototype.render?t.__c=s=new P(y,g):(t.__c=s=new pn(y,g),s.constructor=P,s.render=Cn),b&&b.sub(s),s.props=y,s.state||(s.state={}),s.context=g,s.__n=r,f=s.__d=!0,s.__h=[],s._sb=[]),null==s.__s&&(s.__s=s.state),null!=P.getDerivedStateFromProps&&(s.__s==s.state&&(s.__s=an({},s.__s)),an(s.__s,P.getDerivedStateFromProps(y,s.__s))),p=s.props,m=s.state,s.__v=t,f)null==P.getDerivedStateFromProps&&null!=s.componentWillMount&&s.componentWillMount(),null!=s.componentDidMount&&s.__h.push(s.componentDidMount);else{if(null==P.getDerivedStateFromProps&&y!==p&&null!=s.componentWillReceiveProps&&s.componentWillReceiveProps(y,g),!s.__e&&null!=s.shouldComponentUpdate&&!1===s.shouldComponentUpdate(y,s.__s,g)||t.__v===n.__v){for(t.__v!==n.__v&&(s.props=y,s.state=s.__s,s.__d=!1),s.__e=!1,t.__e=n.__e,t.__k=n.__k,t.__k.forEach((function(e){e&&(e.__=t)})),h=0;h0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var n=e[e.length-1];(null==n?void 0:n.isHighlighted)===t.isHighlighted?e[e.length-1]={value:n.value+t.value,isHighlighted:n.isHighlighted}:e.push(t)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(xn);r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function Tn(e){return function(e){if(Array.isArray(e))return qn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return qn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return qn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function qn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n",""":'"',"'":"'"},Fn=new RegExp(/\w/i),Ln=/&(amp|quot|lt|gt|#39);/g,Un=RegExp(Ln.source);function Mn(e,t){var n,r,o,i=e[t],u=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,a=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return Fn.test((o=i.value)&&Un.test(o)?o.replace(Ln,(function(e){return Rn[e]})):o)||a!==u?i.isHighlighted:a}function Hn(e){return Hn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Hn(e)}function Vn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Wn(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function ur(e){return function(e){if(Array.isArray(e))return ar(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return ar(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ar(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ar(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0;if(!O.value.core.openOnFocus&&!t.query)return n;var r=Boolean(y.current||O.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:br,options:e}}))})),j=f(n({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},O.value.core.initialState)),P={getEnvironmentProps:O.value.renderer.getEnvironmentProps,getFormProps:O.value.renderer.getFormProps,getInputProps:O.value.renderer.getInputProps,getItemProps:O.value.renderer.getItemProps,getLabelProps:O.value.renderer.getLabelProps,getListProps:O.value.renderer.getListProps,getPanelProps:O.value.renderer.getPanelProps,getRootProps:O.value.renderer.getRootProps},w={setActiveItemId:S.value.setActiveItemId,setQuery:S.value.setQuery,setCollections:S.value.setCollections,setIsOpen:S.value.setIsOpen,setStatus:S.value.setStatus,setContext:S.value.setContext,refresh:S.value.refresh,navigator:S.value.navigator},I=m((function(){return Ct.bind(O.value.renderer.renderer.createElement)})),A=m((function(){return Gt({autocomplete:S.value,autocompleteScopeApi:w,classNames:O.value.renderer.classNames,environment:O.value.core.environment,isDetached:_.value,placeholder:O.value.core.placeholder,propGetters:P,setIsModalOpen:k,state:j.current,translations:O.value.renderer.translations})}));function E(){Ht(A.value.panel,{style:_.value?{}:yr({panelPlacement:O.value.renderer.panelPlacement,container:A.value.root,form:A.value.form,environment:O.value.core.environment})})}function D(e){j.current=e;var t={autocomplete:S.value,autocompleteScopeApi:w,classNames:O.value.renderer.classNames,components:O.value.renderer.components,container:O.value.renderer.container,html:I.value,dom:A.value,panelContainer:_.value?A.value.detachedContainer:O.value.renderer.panelContainer,propGetters:P,state:j.current,renderer:O.value.renderer.renderer},r=!b(e)&&!y.current&&O.value.renderer.renderNoResults||O.value.renderer.render;!function(e){var t=e.autocomplete,r=e.autocompleteScopeApi,o=e.dom,i=e.propGetters,u=e.state;Vt(o.root,i.getRootProps(n({state:u,props:t.getRootProps({})},r))),Vt(o.input,i.getInputProps(n({state:u,props:t.getInputProps({inputElement:o.input}),inputElement:o.input},r))),Ht(o.label,{hidden:"stalled"===u.status}),Ht(o.loadingIndicator,{hidden:"stalled"!==u.status}),Ht(o.clearButton,{hidden:!u.query}),Ht(o.detachedSearchButtonQuery,{textContent:u.query}),Ht(o.detachedSearchButtonPlaceholder,{hidden:Boolean(u.query)})}(t),function(e,t){var r=t.autocomplete,o=t.autocompleteScopeApi,u=t.classNames,a=t.html,l=t.dom,c=t.panelContainer,s=t.propGetters,f=t.state,p=t.components,m=t.renderer;if(f.isOpen){c.contains(l.panel)||"loading"===f.status||c.appendChild(l.panel),l.panel.classList.toggle("aa-Panel--stalled","stalled"===f.status);var v=f.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var l=e.source,c=e.items;return m.createElement("section",{key:t,className:u.source,"data-autocomplete-source-id":l.sourceId},l.templates.header&&m.createElement("div",{className:u.sourceHeader},l.templates.header({components:p,createElement:m.createElement,Fragment:m.Fragment,items:c,source:l,state:f,html:a})),l.templates.noResults&&0===c.length?m.createElement("div",{className:u.sourceNoResults},l.templates.noResults({components:p,createElement:m.createElement,Fragment:m.Fragment,source:l,state:f,html:a})):m.createElement("ul",i({className:u.list},s.getListProps(n({state:f,props:r.getListProps({source:l})},o))),c.map((function(e){var t=r.getItemProps({item:e,source:l});return m.createElement("li",i({key:t.id,className:u.item},s.getItemProps(n({state:f,props:t},o))),l.templates.item({components:p,createElement:m.createElement,Fragment:m.Fragment,item:e,state:f,html:a}))}))),l.templates.footer&&m.createElement("div",{className:u.sourceFooter},l.templates.footer({components:p,createElement:m.createElement,Fragment:m.Fragment,items:c,source:l,state:f,html:a})))})),d=m.createElement(m.Fragment,null,m.createElement("div",{className:u.panelLayout},v),m.createElement("div",{className:"aa-GradientBottom"})),y=v.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(n(n({children:d,state:f,sections:v,elements:y},m),{},{components:p,html:a},o),l.panel)}else c.contains(l.panel)&&c.removeChild(l.panel)}(r,t)}function C(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};l();var t=O.value.renderer,n=t.components,r=u(t,gr);g.current=qt(r,O.value.core,{components:Bt(n,(function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")})),initialState:j.current},e),v(),c(),S.value.refresh().then((function(){D(j.current)}))}function k(e){requestAnimationFrame((function(){var t=O.value.core.environment.document.body.contains(A.value.detachedOverlay);e!==t&&(e?(O.value.core.environment.document.body.appendChild(A.value.detachedOverlay),O.value.core.environment.document.body.classList.add("aa-Detached"),A.value.input.focus()):(O.value.core.environment.document.body.removeChild(A.value.detachedOverlay),O.value.core.environment.document.body.classList.remove("aa-Detached")))}))}return a((function(){var e=S.value.getEnvironmentProps({formElement:A.value.form,panelElement:A.value.panel,inputElement:A.value.input});return Ht(O.value.core.environment,e),function(){Ht(O.value.core.environment,Object.keys(e).reduce((function(e,t){return n(n({},e),{},o({},t,void 0))}),{}))}})),a((function(){var e=_.value?O.value.core.environment.document.body:O.value.renderer.panelContainer,t=_.value?A.value.detachedOverlay:A.value.panel;return _.value&&j.current.isOpen&&k(!0),D(j.current),function(){e.contains(t)&&e.removeChild(t)}})),a((function(){var e=O.value.renderer.container;return e.appendChild(A.value.root),function(){e.removeChild(A.value.root)}})),a((function(){var e=p((function(e){D(e.state)}),0);return h.current=function(t){var n=t.state,r=t.prevState;(_.value&&r.isOpen!==n.isOpen&&k(n.isOpen),_.value||!n.isOpen||r.isOpen||E(),n.query!==r.query)&&O.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){h.current=void 0}})),a((function(){var e=p((function(){var e=_.value;_.value=O.value.core.environment.matchMedia(O.value.renderer.detachedMediaQuery).matches,e!==_.value?C({}):requestAnimationFrame(E)}),20);return O.value.core.environment.addEventListener("resize",e),function(){O.value.core.environment.removeEventListener("resize",e)}})),a((function(){if(!_.value)return function(){};function e(e){A.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=O.value.core.environment.matchMedia(getComputedStyle(O.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),a((function(){return requestAnimationFrame(E),function(){}})),n(n({},w),{},{update:C,destroy:function(){l()}})},e.getAlgoliaFacets=function(e){var t=hr({transformResponse:function(e){return e.facetHits}}),r=e.queries.map((function(e){return n(n({},e),{},{type:"facet"})}));return t(n(n({},e),{},{queries:r}))},e.getAlgoliaResults=Or,Object.defineProperty(e,"__esModule",{value:!0})})); + diff --git a/site_libs/quarto-search/fuse.min.js b/site_libs/quarto-search/fuse.min.js new file mode 100644 index 0000000..adc2835 --- /dev/null +++ b/site_libs/quarto-search/fuse.min.js @@ -0,0 +1,9 @@ +/** + * Fuse.js v6.6.2 - Lightweight fuzzy-search (http://fusejs.io) + * + * Copyright (c) 2022 Kiro Risk (http://kiro.me) + * All Rights Reserved. Apache Software License 2.0 + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ +var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=new Map,r=Math.pow(10,t);return{get:function(t){var i=t.match(C).length;if(n.has(i))return n.get(i);var o=1/Math.pow(i,.5*e),c=parseFloat(Math.round(o*r)/r);return n.set(i,c),c},clear:function(){n.clear()}}}var $=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.getFn,i=void 0===n?I.getFn:n,o=t.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o;r(this,e),this.norm=E(c,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return o(e,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=t,this._keysMap={},t.forEach((function(t,n){e._keysMap[t.id]=n}))}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,g(this.docs[0])?this.docs.forEach((function(t,n){e._addString(t,n)})):this.docs.forEach((function(t,n){e._addObject(t,n)})),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();g(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t2&&void 0!==arguments[2]?arguments[2]:{},r=n.getFn,i=void 0===r?I.getFn:r,o=n.fieldNormWeight,c=void 0===o?I.fieldNormWeight:o,a=new $({getFn:i,fieldNormWeight:c});return a.setKeys(e.map(_)),a.setSources(t),a.create(),a}function R(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.errors,r=void 0===n?0:n,i=t.currentLocation,o=void 0===i?0:i,c=t.expectedLocation,a=void 0===c?0:c,s=t.distance,u=void 0===s?I.distance:s,h=t.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=r/e.length;if(l)return f;var d=Math.abs(a-o);return u?f+d/u:d?1:f}function N(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:I.minMatchCharLength,n=[],r=-1,i=-1,o=0,c=e.length;o=t&&n.push([r,i]),r=-1)}return e[o-1]&&o-r>=t&&n.push([r,o-1]),n}var P=32;function W(e){for(var t={},n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:{},o=i.location,c=void 0===o?I.location:o,a=i.threshold,s=void 0===a?I.threshold:a,u=i.distance,h=void 0===u?I.distance:u,l=i.includeMatches,f=void 0===l?I.includeMatches:l,d=i.findAllMatches,v=void 0===d?I.findAllMatches:d,g=i.minMatchCharLength,y=void 0===g?I.minMatchCharLength:g,p=i.isCaseSensitive,m=void 0===p?I.isCaseSensitive:p,k=i.ignoreLocation,M=void 0===k?I.ignoreLocation:k;if(r(this,e),this.options={location:c,threshold:s,distance:h,includeMatches:f,findAllMatches:v,minMatchCharLength:y,isCaseSensitive:m,ignoreLocation:M},this.pattern=m?t:t.toLowerCase(),this.chunks=[],this.pattern.length){var b=function(e,t){n.chunks.push({pattern:e,alphabet:W(e),startIndex:t})},x=this.pattern.length;if(x>P){for(var w=0,L=x%P,S=x-L;w3&&void 0!==arguments[3]?arguments[3]:{},i=r.location,o=void 0===i?I.location:i,c=r.distance,a=void 0===c?I.distance:c,s=r.threshold,u=void 0===s?I.threshold:s,h=r.findAllMatches,l=void 0===h?I.findAllMatches:h,f=r.minMatchCharLength,d=void 0===f?I.minMatchCharLength:f,v=r.includeMatches,g=void 0===v?I.includeMatches:v,y=r.ignoreLocation,p=void 0===y?I.ignoreLocation:y;if(t.length>P)throw new Error(w(P));for(var m,k=t.length,M=e.length,b=Math.max(0,Math.min(o,M)),x=u,L=b,S=d>1||g,_=S?Array(M):[];(m=e.indexOf(t,L))>-1;){var O=R(t,{currentLocation:m,expectedLocation:b,distance:a,ignoreLocation:p});if(x=Math.min(O,x),L=m+k,S)for(var j=0;j=z;q-=1){var B=q-1,J=n[e.charAt(B)];if(S&&(_[B]=+!!J),K[q]=(K[q+1]<<1|1)&J,F&&(K[q]|=(A[q+1]|A[q])<<1|1|A[q+1]),K[q]&$&&(C=R(t,{errors:F,currentLocation:B,expectedLocation:b,distance:a,ignoreLocation:p}))<=x){if(x=C,(L=B)<=b)break;z=Math.max(1,2*b-L)}}if(R(t,{errors:F+1,currentLocation:b,expectedLocation:b,distance:a,ignoreLocation:p})>x)break;A=K}var U={isMatch:L>=0,score:Math.max(.001,C)};if(S){var V=N(_,d);V.length?g&&(U.indices=V):U.isMatch=!1}return U}(e,n,i,{location:c+o,distance:a,threshold:s,findAllMatches:u,minMatchCharLength:h,includeMatches:r,ignoreLocation:l}),p=y.isMatch,m=y.score,k=y.indices;p&&(g=!0),v+=m,p&&k&&(d=[].concat(f(d),f(k)))}));var y={isMatch:g,score:g?v/this.chunks.length:1};return g&&r&&(y.indices=d),y}}]),e}(),z=function(){function e(t){r(this,e),this.pattern=t}return o(e,[{key:"search",value:function(){}}],[{key:"isMultiMatch",value:function(e){return D(e,this.multiRegex)}},{key:"isSingleMatch",value:function(e){return D(e,this.singleRegex)}}]),e}();function D(e,t){var n=e.match(t);return n?n[1]:null}var K=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e===this.pattern;return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"exact"}},{key:"multiRegex",get:function(){return/^="(.*)"$/}},{key:"singleRegex",get:function(){return/^=(.*)$/}}]),n}(z),q=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=-1===e.indexOf(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"$/}},{key:"singleRegex",get:function(){return/^!(.*)$/}}]),n}(z),B=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,this.pattern.length-1]}}}],[{key:"type",get:function(){return"prefix-exact"}},{key:"multiRegex",get:function(){return/^\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^\^(.*)$/}}]),n}(z),J=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.startsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-prefix-exact"}},{key:"multiRegex",get:function(){return/^!\^"(.*)"$/}},{key:"singleRegex",get:function(){return/^!\^(.*)$/}}]),n}(z),U=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}],[{key:"type",get:function(){return"suffix-exact"}},{key:"multiRegex",get:function(){return/^"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^(.*)\$$/}}]),n}(z),V=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){var t=!e.endsWith(this.pattern);return{isMatch:t,score:t?0:1,indices:[0,e.length-1]}}}],[{key:"type",get:function(){return"inverse-suffix-exact"}},{key:"multiRegex",get:function(){return/^!"(.*)"\$$/}},{key:"singleRegex",get:function(){return/^!(.*)\$$/}}]),n}(z),G=function(e){a(n,e);var t=l(n);function n(e){var i,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=o.location,a=void 0===c?I.location:c,s=o.threshold,u=void 0===s?I.threshold:s,h=o.distance,l=void 0===h?I.distance:h,f=o.includeMatches,d=void 0===f?I.includeMatches:f,v=o.findAllMatches,g=void 0===v?I.findAllMatches:v,y=o.minMatchCharLength,p=void 0===y?I.minMatchCharLength:y,m=o.isCaseSensitive,k=void 0===m?I.isCaseSensitive:m,M=o.ignoreLocation,b=void 0===M?I.ignoreLocation:M;return r(this,n),(i=t.call(this,e))._bitapSearch=new T(e,{location:a,threshold:u,distance:l,includeMatches:d,findAllMatches:g,minMatchCharLength:p,isCaseSensitive:k,ignoreLocation:b}),i}return o(n,[{key:"search",value:function(e){return this._bitapSearch.searchIn(e)}}],[{key:"type",get:function(){return"fuzzy"}},{key:"multiRegex",get:function(){return/^"(.*)"$/}},{key:"singleRegex",get:function(){return/^(.*)$/}}]),n}(z),H=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){for(var t,n=0,r=[],i=this.pattern.length;(t=e.indexOf(this.pattern,n))>-1;)n=t+i,r.push([t,n-1]);var o=!!r.length;return{isMatch:o,score:o?0:1,indices:r}}}],[{key:"type",get:function(){return"include"}},{key:"multiRegex",get:function(){return/^'"(.*)"$/}},{key:"singleRegex",get:function(){return/^'(.*)$/}}]),n}(z),Q=[K,H,B,J,V,U,q,G],X=Q.length,Y=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/;function Z(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.split("|").map((function(e){for(var n=e.trim().split(Y).filter((function(e){return e&&!!e.trim()})),r=[],i=0,o=n.length;i1&&void 0!==arguments[1]?arguments[1]:{},i=n.isCaseSensitive,o=void 0===i?I.isCaseSensitive:i,c=n.includeMatches,a=void 0===c?I.includeMatches:c,s=n.minMatchCharLength,u=void 0===s?I.minMatchCharLength:s,h=n.ignoreLocation,l=void 0===h?I.ignoreLocation:h,f=n.findAllMatches,d=void 0===f?I.findAllMatches:f,v=n.location,g=void 0===v?I.location:v,y=n.threshold,p=void 0===y?I.threshold:y,m=n.distance,k=void 0===m?I.distance:m;r(this,e),this.query=null,this.options={isCaseSensitive:o,includeMatches:a,minMatchCharLength:u,findAllMatches:d,ignoreLocation:l,location:g,threshold:p,distance:k},this.pattern=o?t:t.toLowerCase(),this.query=Z(this.pattern,this.options)}return o(e,[{key:"searchIn",value:function(e){var t=this.query;if(!t)return{isMatch:!1,score:1};var n=this.options,r=n.includeMatches;e=n.isCaseSensitive?e:e.toLowerCase();for(var i=0,o=[],c=0,a=0,s=t.length;a-1&&(n.refIndex=e.idx),t.matches.push(n)}}))}function ve(e,t){t.score=e.score}function ge(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.includeMatches,i=void 0===r?I.includeMatches:r,o=n.includeScore,c=void 0===o?I.includeScore:o,a=[];return i&&a.push(de),c&&a.push(ve),e.map((function(e){var n=e.idx,r={item:t[n],refIndex:n};return a.length&&a.forEach((function(t){t(e,r)})),r}))}var ye=function(){function e(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;r(this,e),this.options=t(t({},I),i),this.options.useExtendedSearch,this._keyStore=new S(this.options.keys),this.setCollection(n,o)}return o(e,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof $))throw new Error("Incorrect 'index' type");this._myIndex=t||F(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){k(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},t=[],n=0,r=this._docs.length;n1&&void 0!==arguments[1]?arguments[1]:{},n=t.limit,r=void 0===n?-1:n,i=this.options,o=i.includeMatches,c=i.includeScore,a=i.shouldSort,s=i.sortFn,u=i.ignoreFieldNorm,h=g(e)?g(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return fe(h,{ignoreFieldNorm:u}),a&&h.sort(s),y(r)&&r>-1&&(h=h.slice(0,r)),ge(h,this._docs,{includeMatches:o,includeScore:c})}},{key:"_searchStringList",value:function(e){var t=re(e,this.options),n=this._myIndex.records,r=[];return n.forEach((function(e){var n=e.v,i=e.i,o=e.n;if(k(n)){var c=t.searchIn(n),a=c.isMatch,s=c.score,u=c.indices;a&&r.push({item:n,idx:i,matches:[{score:s,value:n,norm:o,indices:u}]})}})),r}},{key:"_searchLogical",value:function(e){var t=this,n=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).auto,r=void 0===n||n,i=function e(n){var i=Object.keys(n),o=ue(n);if(!o&&i.length>1&&!se(n))return e(le(n));if(he(n)){var c=o?n[ce]:i[0],a=o?n[ae]:n[c];if(!g(a))throw new Error(x(c));var s={keyId:j(c),pattern:a};return r&&(s.searcher=re(a,t)),s}var u={children:[],operator:i[0]};return i.forEach((function(t){var r=n[t];v(r)&&r.forEach((function(t){u.children.push(e(t))}))})),u};return se(e)||(e=le(e)),i(e)}(e,this.options),r=function e(n,r,i){if(!n.children){var o=n.keyId,c=n.searcher,a=t._findMatches({key:t._keyStore.get(o),value:t._myIndex.getValueForItemAtKeyId(r,o),searcher:c});return a&&a.length?[{idx:i,item:r,matches:a}]:[]}for(var s=[],u=0,h=n.children.length;u1&&void 0!==arguments[1]?arguments[1]:{},n=t.getFn,r=void 0===n?I.getFn:n,i=t.fieldNormWeight,o=void 0===i?I.fieldNormWeight:i,c=e.keys,a=e.records,s=new $({getFn:r,fieldNormWeight:o});return s.setKeys(c),s.setIndexRecords(a),s},ye.config=I,function(){ne.push.apply(ne,arguments)}(te),ye},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t(); \ No newline at end of file diff --git a/site_libs/quarto-search/quarto-search.js b/site_libs/quarto-search/quarto-search.js new file mode 100644 index 0000000..5f723d7 --- /dev/null +++ b/site_libs/quarto-search/quarto-search.js @@ -0,0 +1,1286 @@ +const kQueryArg = "q"; +const kResultsArg = "show-results"; + +// If items don't provide a URL, then both the navigator and the onSelect +// function aren't called (and therefore, the default implementation is used) +// +// We're using this sentinel URL to signal to those handlers that this +// item is a more item (along with the type) and can be handled appropriately +const kItemTypeMoreHref = "0767FDFD-0422-4E5A-BC8A-3BE11E5BBA05"; + +window.document.addEventListener("DOMContentLoaded", function (_event) { + // Ensure that search is available on this page. If it isn't, + // should return early and not do anything + var searchEl = window.document.getElementById("quarto-search"); + if (!searchEl) return; + + const { autocomplete } = window["@algolia/autocomplete-js"]; + + let quartoSearchOptions = {}; + let language = {}; + const searchOptionEl = window.document.getElementById( + "quarto-search-options" + ); + if (searchOptionEl) { + const jsonStr = searchOptionEl.textContent; + quartoSearchOptions = JSON.parse(jsonStr); + language = quartoSearchOptions.language; + } + + // note the search mode + if (quartoSearchOptions.type === "overlay") { + searchEl.classList.add("type-overlay"); + } else { + searchEl.classList.add("type-textbox"); + } + + // Used to determine highlighting behavior for this page + // A `q` query param is expected when the user follows a search + // to this page + const currentUrl = new URL(window.location); + const query = currentUrl.searchParams.get(kQueryArg); + const showSearchResults = currentUrl.searchParams.get(kResultsArg); + const mainEl = window.document.querySelector("main"); + + // highlight matches on the page + if (query && mainEl) { + // perform any highlighting + highlight(escapeRegExp(query), mainEl); + + // fix up the URL to remove the q query param + const replacementUrl = new URL(window.location); + replacementUrl.searchParams.delete(kQueryArg); + window.history.replaceState({}, "", replacementUrl); + } + + // function to clear highlighting on the page when the search query changes + // (e.g. if the user edits the query or clears it) + let highlighting = true; + const resetHighlighting = (searchTerm) => { + if (mainEl && highlighting && query && searchTerm !== query) { + clearHighlight(query, mainEl); + highlighting = false; + } + }; + + // Clear search highlighting when the user scrolls sufficiently + const resetFn = () => { + resetHighlighting(""); + window.removeEventListener("quarto-hrChanged", resetFn); + window.removeEventListener("quarto-sectionChanged", resetFn); + }; + + // Register this event after the initial scrolling and settling of events + // on the page + window.addEventListener("quarto-hrChanged", resetFn); + window.addEventListener("quarto-sectionChanged", resetFn); + + // Responsively switch to overlay mode if the search is present on the navbar + // Note that switching the sidebar to overlay mode requires more coordinate (not just + // the media query since we generate different HTML for sidebar overlays than we do + // for sidebar input UI) + const detachedMediaQuery = + quartoSearchOptions.type === "overlay" ? "all" : "(max-width: 991px)"; + + // If configured, include the analytics client to send insights + const plugins = configurePlugins(quartoSearchOptions); + + let lastState = null; + const { setIsOpen, setQuery, setCollections } = autocomplete({ + container: searchEl, + detachedMediaQuery: detachedMediaQuery, + defaultActiveItemId: 0, + panelContainer: "#quarto-search-results", + panelPlacement: quartoSearchOptions["panel-placement"], + debug: false, + openOnFocus: true, + plugins, + classNames: { + form: "d-flex", + }, + placeholder: language["search-text-placeholder"], + translations: { + clearButtonTitle: language["search-clear-button-title"], + detachedCancelButtonText: language["search-detached-cancel-button-title"], + submitButtonTitle: language["search-submit-button-title"], + }, + initialState: { + query, + }, + getItemUrl({ item }) { + return item.href; + }, + onStateChange({ state }) { + // If this is a file URL, note that + + // Perhaps reset highlighting + resetHighlighting(state.query); + + // If the panel just opened, ensure the panel is positioned properly + if (state.isOpen) { + if (lastState && !lastState.isOpen) { + setTimeout(() => { + positionPanel(quartoSearchOptions["panel-placement"]); + }, 150); + } + } + + // Perhaps show the copy link + showCopyLink(state.query, quartoSearchOptions); + + lastState = state; + }, + reshape({ sources, state }) { + return sources.map((source) => { + try { + const items = source.getItems(); + + // Validate the items + validateItems(items); + + // group the items by document + const groupedItems = new Map(); + items.forEach((item) => { + const hrefParts = item.href.split("#"); + const baseHref = hrefParts[0]; + const isDocumentItem = hrefParts.length === 1; + + const items = groupedItems.get(baseHref); + if (!items) { + groupedItems.set(baseHref, [item]); + } else { + // If the href for this item matches the document + // exactly, place this item first as it is the item that represents + // the document itself + if (isDocumentItem) { + items.unshift(item); + } else { + items.push(item); + } + groupedItems.set(baseHref, items); + } + }); + + const reshapedItems = []; + let count = 1; + for (const [_key, value] of groupedItems) { + const firstItem = value[0]; + reshapedItems.push({ + ...firstItem, + type: kItemTypeDoc, + }); + + const collapseMatches = quartoSearchOptions["collapse-after"]; + const collapseCount = + typeof collapseMatches === "number" ? collapseMatches : 1; + + if (value.length > 1) { + const target = `search-more-${count}`; + const isExpanded = + state.context.expanded && + state.context.expanded.includes(target); + + const remainingCount = value.length - collapseCount; + + for (let i = 1; i < value.length; i++) { + if (collapseMatches && i === collapseCount) { + reshapedItems.push({ + target, + title: isExpanded + ? language["search-hide-matches-text"] + : remainingCount === 1 + ? `${remainingCount} ${language["search-more-match-text"]}` + : `${remainingCount} ${language["search-more-matches-text"]}`, + type: kItemTypeMore, + href: kItemTypeMoreHref, + }); + } + + if (isExpanded || !collapseMatches || i < collapseCount) { + reshapedItems.push({ + ...value[i], + type: kItemTypeItem, + target, + }); + } + } + } + count += 1; + } + + return { + ...source, + getItems() { + return reshapedItems; + }, + }; + } catch (error) { + // Some form of error occurred + return { + ...source, + getItems() { + return [ + { + title: error.name || "An Error Occurred While Searching", + text: + error.message || + "An unknown error occurred while attempting to perform the requested search.", + type: kItemTypeError, + }, + ]; + }, + }; + } + }); + }, + navigator: { + navigate({ itemUrl }) { + if (itemUrl !== offsetURL(kItemTypeMoreHref)) { + window.location.assign(itemUrl); + } + }, + navigateNewTab({ itemUrl }) { + if (itemUrl !== offsetURL(kItemTypeMoreHref)) { + const windowReference = window.open(itemUrl, "_blank", "noopener"); + if (windowReference) { + windowReference.focus(); + } + } + }, + navigateNewWindow({ itemUrl }) { + if (itemUrl !== offsetURL(kItemTypeMoreHref)) { + window.open(itemUrl, "_blank", "noopener"); + } + }, + }, + getSources({ state, setContext, setActiveItemId, refresh }) { + return [ + { + sourceId: "documents", + getItemUrl({ item }) { + if (item.href) { + return offsetURL(item.href); + } else { + return undefined; + } + }, + onSelect({ + item, + state, + setContext, + setIsOpen, + setActiveItemId, + refresh, + }) { + if (item.type === kItemTypeMore) { + toggleExpanded(item, state, setContext, setActiveItemId, refresh); + + // Toggle more + setIsOpen(true); + } + }, + getItems({ query }) { + if (query === null || query === "") { + return []; + } + + const limit = quartoSearchOptions.limit; + if (quartoSearchOptions.algolia) { + return algoliaSearch(query, limit, quartoSearchOptions.algolia); + } else { + // Fuse search options + const fuseSearchOptions = { + isCaseSensitive: false, + shouldSort: true, + minMatchCharLength: 2, + limit: limit, + }; + + return readSearchData().then(function (fuse) { + return fuseSearch(query, fuse, fuseSearchOptions); + }); + } + }, + templates: { + noResults({ createElement }) { + const hasQuery = lastState.query; + + return createElement( + "div", + { + class: `quarto-search-no-results${ + hasQuery ? "" : " no-query" + }`, + }, + language["search-no-results-text"] + ); + }, + header({ items, createElement }) { + // count the documents + const count = items.filter((item) => { + return item.type === kItemTypeDoc; + }).length; + + if (count > 0) { + return createElement( + "div", + { class: "search-result-header" }, + `${count} ${language["search-matching-documents-text"]}` + ); + } else { + return createElement( + "div", + { class: "search-result-header-no-results" }, + `` + ); + } + }, + footer({ _items, createElement }) { + if ( + quartoSearchOptions.algolia && + quartoSearchOptions.algolia["show-logo"] + ) { + const libDir = quartoSearchOptions.algolia["libDir"]; + const logo = createElement("img", { + src: offsetURL( + `${libDir}/quarto-search/search-by-algolia.svg` + ), + class: "algolia-search-logo", + }); + return createElement( + "a", + { href: "http://www.algolia.com/" }, + logo + ); + } + }, + + item({ item, createElement }) { + return renderItem( + item, + createElement, + state, + setActiveItemId, + setContext, + refresh, + quartoSearchOptions + ); + }, + }, + }, + ]; + }, + }); + + window.quartoOpenSearch = () => { + setIsOpen(false); + setIsOpen(true); + focusSearchInput(); + }; + + document.addEventListener("keyup", (event) => { + const { key } = event; + const kbds = quartoSearchOptions["keyboard-shortcut"]; + const focusedEl = document.activeElement; + + const isFormElFocused = [ + "input", + "select", + "textarea", + "button", + "option", + ].find((tag) => { + return focusedEl.tagName.toLowerCase() === tag; + }); + + if ( + kbds && + kbds.includes(key) && + !isFormElFocused && + !document.activeElement.isContentEditable + ) { + event.preventDefault(); + window.quartoOpenSearch(); + } + }); + + // Remove the labeleledby attribute since it is pointing + // to a non-existent label + if (quartoSearchOptions.type === "overlay") { + const inputEl = window.document.querySelector( + "#quarto-search .aa-Autocomplete" + ); + if (inputEl) { + inputEl.removeAttribute("aria-labelledby"); + } + } + + function throttle(func, wait) { + let waiting = false; + return function () { + if (!waiting) { + func.apply(this, arguments); + waiting = true; + setTimeout(function () { + waiting = false; + }, wait); + } + }; + } + + // If the main document scrolls dismiss the search results + // (otherwise, since they're floating in the document they can scroll with the document) + window.document.body.onscroll = throttle(() => { + // Only do this if we're not detached + // Bug #7117 + // This will happen when the keyboard is shown on ios (resulting in a scroll) + // which then closed the search UI + if (!window.matchMedia(detachedMediaQuery).matches) { + setIsOpen(false); + } + }, 50); + + if (showSearchResults) { + setIsOpen(true); + focusSearchInput(); + } +}); + +function configurePlugins(quartoSearchOptions) { + const autocompletePlugins = []; + const algoliaOptions = quartoSearchOptions.algolia; + if ( + algoliaOptions && + algoliaOptions["analytics-events"] && + algoliaOptions["search-only-api-key"] && + algoliaOptions["application-id"] + ) { + const apiKey = algoliaOptions["search-only-api-key"]; + const appId = algoliaOptions["application-id"]; + + // Aloglia insights may not be loaded because they require cookie consent + // Use deferred loading so events will start being recorded when/if consent + // is granted. + const algoliaInsightsDeferredPlugin = deferredLoadPlugin(() => { + if ( + window.aa && + window["@algolia/autocomplete-plugin-algolia-insights"] + ) { + window.aa("init", { + appId, + apiKey, + useCookie: true, + }); + + const { createAlgoliaInsightsPlugin } = + window["@algolia/autocomplete-plugin-algolia-insights"]; + // Register the insights client + const algoliaInsightsPlugin = createAlgoliaInsightsPlugin({ + insightsClient: window.aa, + onItemsChange({ insights, insightsEvents }) { + const events = insightsEvents.flatMap((event) => { + // This API limits the number of items per event to 20 + const chunkSize = 20; + const itemChunks = []; + const eventItems = event.items; + for (let i = 0; i < eventItems.length; i += chunkSize) { + itemChunks.push(eventItems.slice(i, i + chunkSize)); + } + // Split the items into multiple events that can be sent + const events = itemChunks.map((items) => { + return { + ...event, + items, + }; + }); + return events; + }); + + for (const event of events) { + insights.viewedObjectIDs(event); + } + }, + }); + return algoliaInsightsPlugin; + } + }); + + // Add the plugin + autocompletePlugins.push(algoliaInsightsDeferredPlugin); + return autocompletePlugins; + } +} + +// For plugins that may not load immediately, create a wrapper +// plugin and forward events and plugin data once the plugin +// is initialized. This is useful for cases like cookie consent +// which may prevent the analytics insights event plugin from initializing +// immediately. +function deferredLoadPlugin(createPlugin) { + let plugin = undefined; + let subscribeObj = undefined; + const wrappedPlugin = () => { + if (!plugin && subscribeObj) { + plugin = createPlugin(); + if (plugin && plugin.subscribe) { + plugin.subscribe(subscribeObj); + } + } + return plugin; + }; + + return { + subscribe: (obj) => { + subscribeObj = obj; + }, + onStateChange: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.onStateChange) { + plugin.onStateChange(obj); + } + }, + onSubmit: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.onSubmit) { + plugin.onSubmit(obj); + } + }, + onReset: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.onReset) { + plugin.onReset(obj); + } + }, + getSources: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.getSources) { + return plugin.getSources(obj); + } else { + return Promise.resolve([]); + } + }, + data: (obj) => { + const plugin = wrappedPlugin(); + if (plugin && plugin.data) { + plugin.data(obj); + } + }, + }; +} + +function validateItems(items) { + // Validate the first item + if (items.length > 0) { + const item = items[0]; + const missingFields = []; + if (item.href == undefined) { + missingFields.push("href"); + } + if (!item.title == undefined) { + missingFields.push("title"); + } + if (!item.text == undefined) { + missingFields.push("text"); + } + + if (missingFields.length === 1) { + throw { + name: `Error: Search index is missing the ${missingFields[0]} field.`, + message: `The items being returned for this search do not include all the required fields. Please ensure that your index items include the ${missingFields[0]} field or use index-fields in your _quarto.yml file to specify the field names.`, + }; + } else if (missingFields.length > 1) { + const missingFieldList = missingFields + .map((field) => { + return `${field}`; + }) + .join(", "); + + throw { + name: `Error: Search index is missing the following fields: ${missingFieldList}.`, + message: `The items being returned for this search do not include all the required fields. Please ensure that your index items includes the following fields: ${missingFieldList}, or use index-fields in your _quarto.yml file to specify the field names.`, + }; + } + } +} + +let lastQuery = null; +function showCopyLink(query, options) { + const language = options.language; + lastQuery = query; + // Insert share icon + const inputSuffixEl = window.document.body.querySelector( + ".aa-Form .aa-InputWrapperSuffix" + ); + + if (inputSuffixEl) { + let copyButtonEl = window.document.body.querySelector( + ".aa-Form .aa-InputWrapperSuffix .aa-CopyButton" + ); + + if (copyButtonEl === null) { + copyButtonEl = window.document.createElement("button"); + copyButtonEl.setAttribute("class", "aa-CopyButton"); + copyButtonEl.setAttribute("type", "button"); + copyButtonEl.setAttribute("title", language["search-copy-link-title"]); + copyButtonEl.onmousedown = (e) => { + e.preventDefault(); + e.stopPropagation(); + }; + + const linkIcon = "bi-clipboard"; + const checkIcon = "bi-check2"; + + const shareIconEl = window.document.createElement("i"); + shareIconEl.setAttribute("class", `bi ${linkIcon}`); + copyButtonEl.appendChild(shareIconEl); + inputSuffixEl.prepend(copyButtonEl); + + const clipboard = new window.ClipboardJS(".aa-CopyButton", { + text: function (_trigger) { + const copyUrl = new URL(window.location); + copyUrl.searchParams.set(kQueryArg, lastQuery); + copyUrl.searchParams.set(kResultsArg, "1"); + return copyUrl.toString(); + }, + }); + clipboard.on("success", function (e) { + // Focus the input + + // button target + const button = e.trigger; + const icon = button.querySelector("i.bi"); + + // flash "checked" + icon.classList.add(checkIcon); + icon.classList.remove(linkIcon); + setTimeout(function () { + icon.classList.remove(checkIcon); + icon.classList.add(linkIcon); + }, 1000); + }); + } + + // If there is a query, show the link icon + if (copyButtonEl) { + if (lastQuery && options["copy-button"]) { + copyButtonEl.style.display = "flex"; + } else { + copyButtonEl.style.display = "none"; + } + } + } +} + +/* Search Index Handling */ +// create the index +var fuseIndex = undefined; +var shownWarning = false; + +// fuse index options +const kFuseIndexOptions = { + keys: [ + { name: "title", weight: 20 }, + { name: "section", weight: 20 }, + { name: "text", weight: 10 }, + ], + ignoreLocation: true, + threshold: 0.1, +}; + +async function readSearchData() { + // Initialize the search index on demand + if (fuseIndex === undefined) { + if (window.location.protocol === "file:" && !shownWarning) { + window.alert( + "Search requires JavaScript features disabled when running in file://... URLs. In order to use search, please run this document in a web server." + ); + shownWarning = true; + return; + } + const fuse = new window.Fuse([], kFuseIndexOptions); + + // fetch the main search.json + const response = await fetch(offsetURL("search.json")); + if (response.status == 200) { + return response.json().then(function (searchDocs) { + searchDocs.forEach(function (searchDoc) { + fuse.add(searchDoc); + }); + fuseIndex = fuse; + return fuseIndex; + }); + } else { + return Promise.reject( + new Error( + "Unexpected status from search index request: " + response.status + ) + ); + } + } + + return fuseIndex; +} + +function inputElement() { + return window.document.body.querySelector(".aa-Form .aa-Input"); +} + +function focusSearchInput() { + setTimeout(() => { + const inputEl = inputElement(); + if (inputEl) { + inputEl.focus(); + } + }, 50); +} + +/* Panels */ +const kItemTypeDoc = "document"; +const kItemTypeMore = "document-more"; +const kItemTypeItem = "document-item"; +const kItemTypeError = "error"; + +function renderItem( + item, + createElement, + state, + setActiveItemId, + setContext, + refresh, + quartoSearchOptions +) { + switch (item.type) { + case kItemTypeDoc: + return createDocumentCard( + createElement, + "file-richtext", + item.title, + item.section, + item.text, + item.href, + item.crumbs, + quartoSearchOptions + ); + case kItemTypeMore: + return createMoreCard( + createElement, + item, + state, + setActiveItemId, + setContext, + refresh + ); + case kItemTypeItem: + return createSectionCard( + createElement, + item.section, + item.text, + item.href + ); + case kItemTypeError: + return createErrorCard(createElement, item.title, item.text); + default: + return undefined; + } +} + +function createDocumentCard( + createElement, + icon, + title, + section, + text, + href, + crumbs, + quartoSearchOptions +) { + const iconEl = createElement("i", { + class: `bi bi-${icon} search-result-icon`, + }); + const titleEl = createElement("p", { class: "search-result-title" }, title); + const titleContents = [iconEl, titleEl]; + const showParent = quartoSearchOptions["show-item-context"]; + if (crumbs && showParent) { + let crumbsOut = undefined; + const crumbClz = ["search-result-crumbs"]; + if (showParent === "root") { + crumbsOut = crumbs.length > 1 ? crumbs[0] : undefined; + } else if (showParent === "parent") { + crumbsOut = crumbs.length > 1 ? crumbs[crumbs.length - 2] : undefined; + } else { + crumbsOut = crumbs.length > 1 ? crumbs.join(" > ") : undefined; + crumbClz.push("search-result-crumbs-wrap"); + } + + const crumbEl = createElement( + "p", + { class: crumbClz.join(" ") }, + crumbsOut + ); + titleContents.push(crumbEl); + } + + const titleContainerEl = createElement( + "div", + { class: "search-result-title-container" }, + titleContents + ); + + const textEls = []; + if (section) { + const sectionEl = createElement( + "p", + { class: "search-result-section" }, + section + ); + textEls.push(sectionEl); + } + const descEl = createElement("p", { + class: "search-result-text", + dangerouslySetInnerHTML: { + __html: text, + }, + }); + textEls.push(descEl); + + const textContainerEl = createElement( + "div", + { class: "search-result-text-container" }, + textEls + ); + + const containerEl = createElement( + "div", + { + class: "search-result-container", + }, + [titleContainerEl, textContainerEl] + ); + + const linkEl = createElement( + "a", + { + href: offsetURL(href), + class: "search-result-link", + }, + containerEl + ); + + const classes = ["search-result-doc", "search-item"]; + if (!section) { + classes.push("document-selectable"); + } + + return createElement( + "div", + { + class: classes.join(" "), + }, + linkEl + ); +} + +function createMoreCard( + createElement, + item, + state, + setActiveItemId, + setContext, + refresh +) { + const moreCardEl = createElement( + "div", + { + class: "search-result-more search-item", + onClick: (e) => { + // Handle expanding the sections by adding the expanded + // section to the list of expanded sections + toggleExpanded(item, state, setContext, setActiveItemId, refresh); + e.stopPropagation(); + }, + }, + item.title + ); + + return moreCardEl; +} + +function toggleExpanded(item, state, setContext, setActiveItemId, refresh) { + const expanded = state.context.expanded || []; + if (expanded.includes(item.target)) { + setContext({ + expanded: expanded.filter((target) => target !== item.target), + }); + } else { + setContext({ expanded: [...expanded, item.target] }); + } + + refresh(); + setActiveItemId(item.__autocomplete_id); +} + +function createSectionCard(createElement, section, text, href) { + const sectionEl = createSection(createElement, section, text, href); + return createElement( + "div", + { + class: "search-result-doc-section search-item", + }, + sectionEl + ); +} + +function createSection(createElement, title, text, href) { + const descEl = createElement("p", { + class: "search-result-text", + dangerouslySetInnerHTML: { + __html: text, + }, + }); + + const titleEl = createElement("p", { class: "search-result-section" }, title); + const linkEl = createElement( + "a", + { + href: offsetURL(href), + class: "search-result-link", + }, + [titleEl, descEl] + ); + return linkEl; +} + +function createErrorCard(createElement, title, text) { + const descEl = createElement("p", { + class: "search-error-text", + dangerouslySetInnerHTML: { + __html: text, + }, + }); + + const titleEl = createElement("p", { + class: "search-error-title", + dangerouslySetInnerHTML: { + __html: ` ${title}`, + }, + }); + const errorEl = createElement("div", { class: "search-error" }, [ + titleEl, + descEl, + ]); + return errorEl; +} + +function positionPanel(pos) { + const panelEl = window.document.querySelector( + "#quarto-search-results .aa-Panel" + ); + const inputEl = window.document.querySelector( + "#quarto-search .aa-Autocomplete" + ); + + if (panelEl && inputEl) { + panelEl.style.top = `${Math.round(panelEl.offsetTop)}px`; + if (pos === "start") { + panelEl.style.left = `${Math.round(inputEl.left)}px`; + } else { + panelEl.style.right = `${Math.round(inputEl.offsetRight)}px`; + } + } +} + +/* Highlighting */ +// highlighting functions +function highlightMatch(query, text) { + if (text) { + const start = text.toLowerCase().indexOf(query.toLowerCase()); + if (start !== -1) { + const startMark = ""; + const endMark = ""; + + const end = start + query.length; + text = + text.slice(0, start) + + startMark + + text.slice(start, end) + + endMark + + text.slice(end); + const startInfo = clipStart(text, start); + const endInfo = clipEnd( + text, + startInfo.position + startMark.length + endMark.length + ); + text = + startInfo.prefix + + text.slice(startInfo.position, endInfo.position) + + endInfo.suffix; + + return text; + } else { + return text; + } + } else { + return text; + } +} + +function clipStart(text, pos) { + const clipStart = pos - 50; + if (clipStart < 0) { + // This will just return the start of the string + return { + position: 0, + prefix: "", + }; + } else { + // We're clipping before the start of the string, walk backwards to the first space. + const spacePos = findSpace(text, pos, -1); + return { + position: spacePos.position, + prefix: "", + }; + } +} + +function clipEnd(text, pos) { + const clipEnd = pos + 200; + if (clipEnd > text.length) { + return { + position: text.length, + suffix: "", + }; + } else { + const spacePos = findSpace(text, clipEnd, 1); + return { + position: spacePos.position, + suffix: spacePos.clipped ? "…" : "", + }; + } +} + +function findSpace(text, start, step) { + let stepPos = start; + while (stepPos > -1 && stepPos < text.length) { + const char = text[stepPos]; + if (char === " " || char === "," || char === ":") { + return { + position: step === 1 ? stepPos : stepPos - step, + clipped: stepPos > 1 && stepPos < text.length, + }; + } + stepPos = stepPos + step; + } + + return { + position: stepPos - step, + clipped: false, + }; +} + +// removes highlighting as implemented by the mark tag +function clearHighlight(searchterm, el) { + const childNodes = el.childNodes; + for (let i = childNodes.length - 1; i >= 0; i--) { + const node = childNodes[i]; + if (node.nodeType === Node.ELEMENT_NODE) { + if ( + node.tagName === "MARK" && + node.innerText.toLowerCase() === searchterm.toLowerCase() + ) { + el.replaceChild(document.createTextNode(node.innerText), node); + } else { + clearHighlight(searchterm, node); + } + } + } +} + +function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string +} + +// highlight matches +function highlight(term, el) { + const termRegex = new RegExp(term, "ig"); + const childNodes = el.childNodes; + + // walk back to front avoid mutating elements in front of us + for (let i = childNodes.length - 1; i >= 0; i--) { + const node = childNodes[i]; + + if (node.nodeType === Node.TEXT_NODE) { + // Search text nodes for text to highlight + const text = node.nodeValue; + + let startIndex = 0; + let matchIndex = text.search(termRegex); + if (matchIndex > -1) { + const markFragment = document.createDocumentFragment(); + while (matchIndex > -1) { + const prefix = text.slice(startIndex, matchIndex); + markFragment.appendChild(document.createTextNode(prefix)); + + const mark = document.createElement("mark"); + mark.appendChild( + document.createTextNode( + text.slice(matchIndex, matchIndex + term.length) + ) + ); + markFragment.appendChild(mark); + + startIndex = matchIndex + term.length; + matchIndex = text.slice(startIndex).search(new RegExp(term, "ig")); + if (matchIndex > -1) { + matchIndex = startIndex + matchIndex; + } + } + if (startIndex < text.length) { + markFragment.appendChild( + document.createTextNode(text.slice(startIndex, text.length)) + ); + } + + el.replaceChild(markFragment, node); + } + } else if (node.nodeType === Node.ELEMENT_NODE) { + // recurse through elements + highlight(term, node); + } + } +} + +/* Link Handling */ +// get the offset from this page for a given site root relative url +function offsetURL(url) { + var offset = getMeta("quarto:offset"); + return offset ? offset + url : url; +} + +// read a meta tag value +function getMeta(metaName) { + var metas = window.document.getElementsByTagName("meta"); + for (let i = 0; i < metas.length; i++) { + if (metas[i].getAttribute("name") === metaName) { + return metas[i].getAttribute("content"); + } + } + return ""; +} + +function algoliaSearch(query, limit, algoliaOptions) { + const { getAlgoliaResults } = window["@algolia/autocomplete-preset-algolia"]; + + const applicationId = algoliaOptions["application-id"]; + const searchOnlyApiKey = algoliaOptions["search-only-api-key"]; + const indexName = algoliaOptions["index-name"]; + const indexFields = algoliaOptions["index-fields"]; + const searchClient = window.algoliasearch(applicationId, searchOnlyApiKey); + const searchParams = algoliaOptions["params"]; + const searchAnalytics = !!algoliaOptions["analytics-events"]; + + return getAlgoliaResults({ + searchClient, + queries: [ + { + indexName: indexName, + query, + params: { + hitsPerPage: limit, + clickAnalytics: searchAnalytics, + ...searchParams, + }, + }, + ], + transformResponse: (response) => { + if (!indexFields) { + return response.hits.map((hit) => { + return hit.map((item) => { + return { + ...item, + text: highlightMatch(query, item.text), + }; + }); + }); + } else { + const remappedHits = response.hits.map((hit) => { + return hit.map((item) => { + const newItem = { ...item }; + ["href", "section", "title", "text", "crumbs"].forEach( + (keyName) => { + const mappedName = indexFields[keyName]; + if ( + mappedName && + item[mappedName] !== undefined && + mappedName !== keyName + ) { + newItem[keyName] = item[mappedName]; + delete newItem[mappedName]; + } + } + ); + newItem.text = highlightMatch(query, newItem.text); + return newItem; + }); + }); + return remappedHits; + } + }, + }); +} + +let subSearchTerm = undefined; +let subSearchFuse = undefined; +const kFuseMaxWait = 125; + +async function fuseSearch(query, fuse, fuseOptions) { + let index = fuse; + // Fuse.js using the Bitap algorithm for text matching which runs in + // O(nm) time (no matter the structure of the text). In our case this + // means that long search terms mixed with large index gets very slow + // + // This injects a subIndex that will be used once the terms get long enough + // Usually making this subindex is cheap since there will typically be + // a subset of results matching the existing query + if (subSearchFuse !== undefined && query.startsWith(subSearchTerm)) { + // Use the existing subSearchFuse + index = subSearchFuse; + } else if (subSearchFuse !== undefined) { + // The term changed, discard the existing fuse + subSearchFuse = undefined; + subSearchTerm = undefined; + } + + // Search using the active fuse + const then = performance.now(); + const resultsRaw = await index.search(query, fuseOptions); + const now = performance.now(); + + const results = resultsRaw.map((result) => { + const addParam = (url, name, value) => { + const anchorParts = url.split("#"); + const baseUrl = anchorParts[0]; + const sep = baseUrl.search("\\?") > 0 ? "&" : "?"; + anchorParts[0] = baseUrl + sep + name + "=" + value; + return anchorParts.join("#"); + }; + + return { + title: result.item.title, + section: result.item.section, + href: addParam(result.item.href, kQueryArg, query), + text: highlightMatch(query, result.item.text), + crumbs: result.item.crumbs, + }; + }); + + // If we don't have a subfuse and the query is long enough, go ahead + // and create a subfuse to use for subsequent queries + if (now - then > kFuseMaxWait && subSearchFuse === undefined) { + subSearchTerm = query; + subSearchFuse = new window.Fuse([], kFuseIndexOptions); + resultsRaw.forEach((rr) => { + subSearchFuse.add(rr.item); + }); + } + return results; +} diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..3b7e14d --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,95 @@ + + + + https://michaelaye.github.io/planetarypy/tutorials/pdw2023_demo.html + 2024-04-13T00:12:11.350Z + + + https://michaelaye.github.io/planetarypy/tutorials/pdw_2023.html + 2024-04-13T00:12:11.238Z + + + https://michaelaye.github.io/planetarypy/tutorials/spice_howtos.html + 2024-04-13T00:12:11.158Z + + + https://michaelaye.github.io/planetarypy/api/diviner.html + 2024-04-13T00:12:13.214Z + + + https://michaelaye.github.io/planetarypy/api/ctx.html + 2024-04-13T00:12:12.818Z + + + https://michaelaye.github.io/planetarypy/api/pds.crism_index.html + 2024-04-13T00:12:11.018Z + + + https://michaelaye.github.io/planetarypy/api/pds.utils.html + 2024-04-13T00:12:10.570Z + + + https://michaelaye.github.io/planetarypy/api/pds.indexes.html + 2024-04-13T00:12:10.458Z + + + https://michaelaye.github.io/planetarypy/api/config.html + 2024-04-13T00:12:10.342Z + + + https://michaelaye.github.io/planetarypy/api/spice.kernels.html + 2024-04-13T00:12:11.122Z + + + https://michaelaye.github.io/planetarypy/api/pds.opusapi.html + 2024-04-13T00:12:09.634Z + + + https://michaelaye.github.io/planetarypy/api/pds.lroc_index.html + 2024-04-13T00:12:09.662Z + + + https://michaelaye.github.io/planetarypy/api/hirise.html + 2024-04-13T00:12:29.638Z + + + https://michaelaye.github.io/planetarypy/api/cassini_uvis.html + 2024-04-13T00:12:10.018Z + + + https://michaelaye.github.io/planetarypy/api/geotools.html + 2024-04-13T00:12:10.626Z + + + https://michaelaye.github.io/planetarypy/api/pds.apps.html + 2024-04-13T00:12:10.394Z + + + https://michaelaye.github.io/planetarypy/api/cassini_iss.html + 2024-04-13T00:12:10.514Z + + + https://michaelaye.github.io/planetarypy/api/utils.html + 2024-04-13T00:12:10.634Z + + + https://michaelaye.github.io/planetarypy/api/pds.ctx_index.html + 2024-04-13T00:12:10.662Z + + + https://michaelaye.github.io/planetarypy/api/exceptions.html + 2024-04-13T00:12:11.066Z + + + https://michaelaye.github.io/planetarypy/index.html + 2024-04-13T00:12:09.106Z + + + https://michaelaye.github.io/planetarypy/tutorials/tutorial.html + 2024-04-13T00:12:11.202Z + + + https://michaelaye.github.io/planetarypy/tutorials/apps_demo.html + 2024-04-13T00:12:11.278Z + + diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..b46c209 --- /dev/null +++ b/styles.css @@ -0,0 +1,18 @@ +.cell-output pre { + margin-left: 0.8rem; + margin-top: 0; + background: none; + border-left: 2px solid lightsalmon; + border-top-left-radius: 0; + border-top-right-radius: 0; + } + + .cell-output .sourceCode { + background: none; + margin-top: 0; + } + + .cell > .sourceCode { + margin-bottom: 0; + } + \ No newline at end of file diff --git a/tutorials/PDW2023_Demo_files/figure-html/cell-19-output-1.png b/tutorials/PDW2023_Demo_files/figure-html/cell-19-output-1.png new file mode 100644 index 0000000000000000000000000000000000000000..d4dd4b3b47489e5078e3f743ff82601e8ec4dc1a GIT binary patch literal 428745 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 z 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

GjL{WBO@W#(H9H> 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 literal 0 HcmV?d00001 diff --git a/tutorials/apps_demo.html b/tutorials/apps_demo.html new file mode 100644 index 0000000..26088e1 --- /dev/null +++ b/tutorials/apps_demo.html @@ -0,0 +1,2908 @@ + + + + + + + + + +planetarypy - PlanetaryPy Demo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

PlanetaryPy Demo

+
+ + + +
+ + + + +
+ + + +
+ + + +
+

Time and Network utils

+
+

Times

+
+
from planetarypy import utils
+
+
+

Do you remember that the string conversion code for “day-of-year” is %j ?

+
+
+

Do we want newcomers search for that in Python docs?

+
+
+
times = ["2002-137", "2005-234T13:00:00.123"]
+
+
+
isotimes = [utils.nasa_time_to_iso(t) for t in times]
+isotimes
+
+
['2002-05-17', '2005-08-22T13:00:00.123000']
+
+
+
+
[utils.iso_to_nasa_time(t) for t in isotimes]
+
+
['2002-137', '2005-234T13:00:00.123000']
+
+
+
+
+

Network

+
+
utils.check_url_exists("https://michaelaye.github.io")
+
+
True
+
+
+
+
utils.check_url_exists?
+
+
+
Signature: utils.check_url_exists(url)
+Docstring: <no docstring>
+File:      ~/Dropbox/src/nbplanetary/planetarypy/utils.py
+Type:      function
+
+
+
+
+
utils.have_internet()
+
+
True
+
+
+
+
utils.url_retrieve(
+    "https://michaelaye.github.io/talks/2021-conda-workshop-kharkiv/conda_talk_Kharkiv_conference.pdf",
+    "talk_slides.pdf",
+)
+
+ +
+
+
+
+
+

PDS Indexes

+
+
from planetarypy.pds.apps import find_indexes, get_index, find_instruments
+
+
+
find_indexes?
+
+
+
Signature: find_indexes(instrument: str) -> list
+Docstring: Find existing indexes for an instrument.
+File:      ~/Dropbox/src/nbplanetary/planetarypy/pds/apps.py
+Type:      function
+
+
+
+
+
find_indexes('cassini.uvis')
+
+
['index',
+ 'moon_summary',
+ 'ring_summary',
+ 'saturn_summary',
+ 'supplemental_index',
+ 'versions']
+
+
+
+
find_indexes('go.ssi')  # Galileo orbiter SSImager
+
+
['edr']
+
+
+
+
get_index?
+
+
+
Signature:
+get_index(
+    instr: str,
+    index_name: str = '',
+    refresh: bool = True,
+    force: bool = False,
+) -> pandas.core.frame.DataFrame
+Docstring: Example: get_index("cassini.iss", "index")
+File:      ~/Dropbox/src/nbplanetary/planetarypy/pds/apps.py
+Type:      function
+
+
+
+
+
get_index("cassini.uvis.ring_summary")
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDFILE_SPECIFICATION_NAMERING_OBSERVATION_IDMINIMUM_RIGHT_ASCENSIONMAXIMUM_RIGHT_ASCENSIONMINIMUM_DECLINATIONMAXIMUM_DECLINATIONMINIMUM_RING_RADIUSMAXIMUM_RING_RADIUSFINEST_RING_INTERCEPT_RESOLUTION...RING_CENTER_DISTANCESUB_SOLAR_RING_LONGITUDESUB_OBSERVER_RING_LONGITUDERING_CENTER_PHASE_ANGLERING_CENTER_INCIDENCE_ANGLERING_CENTER_NORTH_BASED_INCIDENCE_ANGLERING_CENTER_EMISSION_ANGLERING_CENTER_NORTH_BASED_EMISSION_ANGLESOLAR_RING_OPENING_ANGLEOBSERVER_RING_OPENING_ANGLE
0COUVIS_0006DATA/D2004_002/EUV2004_002_12_16.LBLS/CO/UVIS/2004-002T12-16/EUV34.15449337.8151419.6797629.7124151074925.3663066570.28987709.0...86724352.465283.109215.93862.78664.404115.59673.661106.339-25.596-16.34
1COUVIS_0006DATA/D2004_002/EUV2004_002_12_32.LBLS/CO/UVIS/2004-002T12-32/EUV34.15555737.8173139.780739.81348521741.8122900680.92487173.0...86719417.82283.109215.93862.78764.404115.59673.661106.339-25.596-16.34
2COUVIS_0006DATA/D2004_002/EUV2004_002_12_47.LBLS/CO/UVIS/2004-002T12-47/EUV34.15410737.8169359.8772499.90987864757.6812839690.54686667.0...86714483.175283.11215.93862.78764.404115.59673.661106.339-25.596-16.34
3COUVIS_0006DATA/D2004_002/EUV2004_002_13_03.LBLS/CO/UVIS/2004-002T13-03/EUV34.15519337.8191529.97817610.010898541745.3552872984.47486145.0...86709548.529283.11215.93862.78764.404115.59673.661106.339-25.596-16.34
4COUVIS_0006DATA/D2004_002/EUV2004_002_13_18.LBLS/CO/UVIS/2004-002T13-18/EUV34.15724337.82233210.07784510.1105361068459.1252999016.49585635.0...86704613.884283.111215.93862.78864.404115.59673.661106.339-25.596-16.34
..................................................................
167406COUVIS_0060DATA/D2017_258/FUV2017_258_04_31.LBLS/CO/UVIS/2017-258T04-31/FUV355.15626793.92438-69.312846-14.507954126726.8831083278.078246.61634...263974.558178.94826.85699.68163.31963.31940.35940.35926.68149.641
167407COUVIS_0060DATA/D2017_258/FUV2017_258_07_00.LBLS/CO/UVIS/2017-258T07-00/FUV82.69282382.747154-4.328498-4.268149-999.0-999.0-999.0...251887.753178.94926.66199.19263.31963.31939.69639.69626.68150.304
167408COUVIS_0060DATA/D2017_258/FUV2017_258_07_15.LBLS/CO/UVIS/2017-258T07-15/FUV54.35867176.196366-4.00728213.298744-999.0-999.0-999.0...157806.504178.95168.0476.00963.31963.31934.94634.94626.68155.054
167409COUVIS_0060DATA/D2017_258/HDAC2017_258_02_14.LBLS/CO/UVIS/2017-258T02-14/HDAC129.674881143.379042-58.332263-48.522644204871.745219390.53617773.0...447586.578178.9429.923115.55963.31963.31953.07353.07326.68136.927
167410COUVIS_0060DATA/D2017_258/HDAC2017_258_02_15.LBLS/CO/UVIS/2017-258T02-15/HDAC92.532639116.78171-67.582806-63.39221898954.702230819.67712312.0...357220.013178.94515.877109.15663.31963.31947.6247.6226.68142.38
+ +

167411 rows × 59 columns

+
+
+
+
+
+
get_index('go.ssi.edr')
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SPACECRAFT_CLOCK_START_COUNTMISSION_NAMEINSTRUMENT_IDDATA_SET_IDIMAGE_IDOBSERVATION_IDPRODUCT_TYPETARGET_NAMEIMAGE_TIMEFILTER_NAME...SUB_SPACECRAFT_LINESUB_SPACECRAFT_LINE_SAMPLECENTER_RING_RADIUSVOLUME_IDFILE_SPECIFICATION_NAMECOMPRESSION_TYPEENCODING_MIN_COMPRESSION_RATIOENCODING_MAX_COMPRESSION_RATIOENCODING_COMPRESSION_RATIOPROCESSING_HISTORY_TEXT
030611.0GALILEOSSIGO-V/E-SSI-2-REDR-V1.1UNKPOST_LAUNCH_CHECKOUTREDRBLACK_SKYNaTCLEAR...-999.0-999.0-999GO_0002RAW_CAL/C0003061100R.IMGNONE0.00.00.0VICAR programs run: CATLABEL,BADLABEL,COPY.
130612.0GALILEOSSIGO-V/E-SSI-2-REDR-V1.1UNKPOST_LAUNCH_CHECKOUTREDRBLACK_SKYNaTCLEAR...-999.0-999.0-999GO_0002RAW_CAL/C0003061200R.IMGNONE0.00.00.0VICAR programs run: CATLABEL,BADLABEL,COPY.
230613.0GALILEOSSIGO-V/E-SSI-2-REDR-V1.1UNKPOST_LAUNCH_CHECKOUTREDRBLACK_SKYNaTCLEAR...-999.0-999.0-999GO_0002RAW_CAL/C0003061300R.IMGNONE0.00.00.0VICAR programs run: CATLABEL,BADLABEL,COPY.
330614.0GALILEOSSIGO-V/E-SSI-2-REDR-V1.1UNKPOST_LAUNCH_CHECKOUTREDRBLACK_SKYNaTCLEAR...-999.0-999.0-999GO_0002RAW_CAL/C0003061400R.IMGNONE0.00.00.0VICAR programs run: CATLABEL,BADLABEL,COPY.
430619.0GALILEOSSIGO-V/E-SSI-2-REDR-V1.1UNKPOST_LAUNCH_CHECKOUTREDRBLACK_SKYNaTCLEAR...-999.0-999.0-999GO_0002RAW_CAL/C0003061900R.IMGNONE0.00.00.0VICAR programs run: CATLABEL,BADLABEL,COPY.
..................................................................
149046006608.22GALILEOSSIGO-J/JSA-SSI-4-REDR-V1.029N003329NSFLTFLD03REDRNON_SCIENCNaTIR-7270...-999.0-999.0-999GO_0023G29/REPAIRED/C0600660822S.IMGINTEGER COSINE TRANSFORM38.91816.98676.488VICAR programs run:SSIMERGE,F2,FASTMOS,FASTMOS...
149056006608.23GALILEOSSIGO-J/JSA-SSI-4-REDR-V1.029N003329NSFLTFLD03REDRNON_SCIENCNaTIR-7270...-999.0-999.0-999GO_0023G29/REPAIRED/C0600660823S.IMGHUFFMAN0.00.00.0VICAR programs run:SSIMERGE,F2,FASTMOS,FASTMOS...
149066006609.68GALILEOSSIGO-J/JSA-SSI-4-REDR-V1.029N003429NSFLTFLD03REDRNON_SCIENCNaTIR-8890...-999.0-999.0-999GO_0023G29/REPAIRED/C0600660968S.IMGINTEGER COSINE TRANSFORM6.0544.928.212VICAR programs run:SSIMERGE,F2,FASTMOS,FASTMOS...
149076006609.69GALILEOSSIGO-J/JSA-SSI-4-REDR-V1.029N003429NSFLTFLD03REDRNON_SCIENCNaTIR-8890...-999.0-999.0-999GO_0023G29/REPAIRED/C0600660969S.IMGHUFFMAN0.00.00.0VICAR programs run:SSIMERGE,F2,FASTMOS,FASTMOS...
149084203615.0GALILEOSSIGO-J/JSA-SSI-2-REDR-V1.011I000311ISECLIPS01REDRIONaTCLEAR...254.092334.653-999GO_0023REDO/E11/IO/C0420361500R.IMGINTEGER COSINE TRANSFORM8.3546.8439.709VICAR programs run: SSIMERGE,UNMOSAIC,CATLABEL...
+ +

14909 rows × 52 columns

+
+
+
+
+
+
find_indexes("cassini.iss")
+
+
['index', 'inventory', 'moon_summary', 'ring_summary', 'saturn_summary']
+
+
+
+
get_index("cassini.iss.saturn_summary")
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDFILE_SPECIFICATION_NAMEOPUS_IDTARGET_NAMEMINIMUM_PLANETOCENTRIC_LATITUDEMAXIMUM_PLANETOCENTRIC_LATITUDEMINIMUM_PLANETOGRAPHIC_LATITUDEMAXIMUM_PLANETOGRAPHIC_LATITUDEMINIMUM_IAU_LONGITUDEMAXIMUM_IAU_LONGITUDE...MAXIMUM_EMISSION_ANGLESUB_SOLAR_PLANETOCENTRIC_LATITUDESUB_SOLAR_PLANETOGRAPHIC_LATITUDESUB_OBSERVER_PLANETOCENTRIC_LATITUDESUB_OBSERVER_PLANETOGRAPHIC_LATITUDESUB_SOLAR_IAU_LONGITUDESUB_OBSERVER_IAU_LONGITUDECENTER_RESOLUTIONCENTER_DISTANCECENTER_PHASE_ANGLE
0COISS_2001data/1454725799_1455008789/N1454725799_1.LBLco-iss-n1454725799SATURN-999.0-999.0-999.0-999.0-999.0-999.0...-999.0-25.411-30.279-16.324-19.796107.986176.558424.6760670874998.94764.07
1COISS_2001data/1454725799_1455008789/N1454726579_1.LBLco-iss-n1454726579SATURN-999.0-999.0-999.0-999.0-999.0-999.0...-999.0-25.411-30.279-16.324-19.796115.305183.877424.6512170870851.37164.07
2COISS_2001data/1454725799_1455008789/N1454727359_1.LBLco-iss-n1454727359SATURN-999.0-999.0-999.0-999.0-999.0-999.0...-999.0-25.411-30.279-16.324-19.796122.625191.197424.6263570866703.09464.071
3COISS_2001data/1454725799_1455008789/N1454728139_1.LBLco-iss-n1454728139SATURN-999.0-999.0-999.0-999.0-999.0-999.0...-999.0-25.411-30.279-16.324-19.796129.94198.513424.6015170862557.20764.071
4COISS_2001data/1454725799_1455008789/N1454728919_1.LBLco-iss-n1454728919SATURN-999.0-999.0-999.0-999.0-999.0-999.0...-999.0-25.411-30.279-16.324-19.796137.264205.837424.5766470858406.79464.071
..................................................................
405116COISS_2116data/1884113741_1884114531/W1884114471_1.LBLco-iss-w1884114471SATURN-999.0-999.0-999.0-999.0-999.0-999.0...51.9726.68231.70129.26234.552263.71579.08175.81817634269.821123.878
405117COISS_2116data/1884113741_1884114531/N1884114501_1.LBLco-iss-n1884114501SATURN-999.0-999.0-999.0-999.0-999.0-999.0...30.55826.68231.70129.26934.56263.99679.3577.59837634053.296123.87
405118COISS_2116data/1884113741_1884114531/W1884114501_1.LBLco-iss-w1884114501SATURN-999.0-999.0-999.0-999.0-999.0-999.0...52.19226.68231.70129.2734.56264.00479.36475.79162634047.739123.87
405119COISS_2116data/1884113741_1884114531/N1884114531_1.LBLco-iss-n1884114531SATURN-999.0-999.0-999.0-999.0-999.0-999.0...30.66526.68231.70129.27734.568264.27879.6337.59578633836.731123.863
405120COISS_2116data/1884113741_1884114531/W1884114531_2.LBLco-iss-w1884114531SATURN-999.0-999.0-999.0-999.0-999.0-999.0...52.47426.68231.70129.27734.568264.28679.64175.76561633830.161123.862
+ +

405121 rows × 35 columns

+
+
+
+
+
+
find_indexes('mro.ctx')
+
+
['edr']
+
+
+
+
get_index('mro.ctx', 'edr', refresh=False)
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDFILE_SPECIFICATION_NAMEORIGINAL_PRODUCT_IDPRODUCT_IDIMAGE_TIMEINSTRUMENT_IDINSTRUMENT_MODE_IDLINE_SAMPLESLINESSPATIAL_SUMMING...SUB_SOLAR_LATITUDESUB_SPACECRAFT_LONGITUDESUB_SPACECRAFT_LATITUDESOLAR_DISTANCESOLAR_LONGITUDELOCAL_TIMEIMAGE_SKEW_ANGLERATIONALE_DESCDATA_QUALITY_DESCORBIT_NUMBER
0MROX_0001DATA/CRU_000001_9999_XN_99N999W.IMG4A_04_0001000400CRU_000001_9999_XN_99N999W2005-08-30 15:40:21.549CTXNIFL505610241...0.00.00.00.0278.8910.160.0Instrument checkout image of spaceOK-4242
1MROX_0001DATA/CRU_000002_9999_XN_99N999W.IMG4A_04_0001000500CRU_000002_9999_XN_99N999W2005-09-08 15:59:45.313CTXNIFL5056153601...0.00.00.00.0284.484.60.0Calibration image of the MoonOK-4126
2MROX_0001DATA/CRU_000003_9999_XN_99N999W.IMG4A_04_0001000600CRU_000003_9999_XN_99N999W2005-09-08 16:03:37.927CTXNIFL505620481...0.00.00.00.0284.484.660.0Calibration image of Omega Centauri (globular ...OK-4126
3MROX_0001DATA/CRU_000004_9999_XN_99N999W.IMG4A_04_0001000700CRU_000004_9999_XN_99N999W2005-09-08 16:08:23.841CTXNIFL505620481...0.00.00.00.0284.484.740.0Calibration image of Omega Centauri (globular ...OK-4126
4MROX_0001DATA/CRU_000005_9999_XN_99N999W.IMG4A_04_0001000800CRU_000005_9999_XN_99N999W2005-09-08 16:11:18.649CTXNIFL5056215041...0.00.00.00.0284.484.790.0Calibration image of the MoonOK-4126
..................................................................
142363MROX_4656DATA/U17_077781_1107_XI_69S045W.IMG4A_04_118B04B300U17_077781_1107_XI_69S045W2023-03-01 00:01:37.834CTXITL505671681...12.7446.17-69.47243271024.830.815.4290.1Southern autumn frost streak area in Viking 2 ...OK77781
142364MROX_4656DATA/U17_077781_1560_XN_24S055W.IMG4A_04_118A04B400U17_077781_1560_XN_24S055W2023-03-01 00:15:17.076CTXNIFL5056307201...12.7455.44-24.08243270437.830.8114.9690.2Ride-along with HiRISEOK77781
142365MROX_4656DATA/U17_077781_1683_XN_11S057W.IMG4A_04_118A04B500U17_077781_1683_XN_11S057W2023-03-01 00:19:04.486CTXNIFL5056317441...12.7457.0-11.7243270441.730.8114.9190.2Terrain north of Coprates ChasmaOK77781
142366MROX_4656DATA/U17_077781_2027_XI_22N061W.IMG4A_04_118B04B600U17_077781_2027_XI_22N061W2023-03-01 00:29:24.818CTXITL5056522241...12.7461.2522.78243271031.730.8114.8289.8Kasei Valles regionOK77781
142367MROX_4656DATA/U17_077781_2440_XN_64N067W.IMG4A_04_118A04B700U17_077781_2440_XN_64N067W2023-03-01 00:43:08.662CTXNIFL505671681...12.7468.7664.02243272920.630.8214.5989.9Ride-along with HiRISEOK77781
+ +

142368 rows × 51 columns

+
+
+
+
+
+
find_instruments('cassini')
+
+
['iss', 'uvis']
+
+
+
+
find_instruments('mro')
+
+
['hirise', 'ctx']
+
+
+
+
find_instruments('lro')
+
+
['diviner', 'lola', 'lroc']
+
+
+
+
+

Instrument data

+
+
from planetarypy.uvis import DataManager
+
+
+
index = get_index("cassini.uvis.index")
+
+
+
index.tail()
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FILE_NAMEOBSERVATION_TYPESTART_TIMESTOP_TIMETARGET_NAMEDATA_SET_IDSPACECRAFT_CLOCK_START_COUNTSPACECRAFT_CLOCK_STOP_COUNTINTEGRATION_DURATIONCOMPRESSION_TYPE...SUB_SOLAR_LONGITUDESUB_SPACECRAFT_LATITUDESUB_SPACECRAFT_LONGITUDEPHASE_ANGLEEMISSION_ANGLESOLAR_INCIDENCE_ANGLECENTRAL_BODY_DISTANCEDWELL_TIMEH_LEVELD_LEVEL
203240/COUVIS_0060/DATA/D2017_258/FUV2017_258_04_31.LBL<NA>2017-09-15 04:31:53.0052017-09-15 09:04:56.755SOLAR WINDCO-S-UVIS-2-CUBE-V1.41/1884145299.160UNK8191.875SQRT_9...-999.0-999.0-999.0-999.0-999.0-999-999.0-999<NA><NA>
203241/COUVIS_0060/DATA/D2017_258/FUV2017_258_07_00.LBL<NA>2017-09-15 07:00:27.6972017-09-15 07:13:40.447SOLAR WINDCO-S-UVIS-2-SPEC-V1.41/1884154214.096UNK2.625SQRT_9...-999.0-999.0-999.0-999.0-999.0-999-999.0-999<NA><NA>
203242/COUVIS_0060/DATA/D2017_258/FUV2017_258_07_15.LBL<NA>2017-09-15 07:15:04.4422017-09-15 10:31:51.692SOLAR WINDCO-S-UVIS-2-SPEC-V1.41/1884155091.032UNK2.625SQRT_9...-999.0-999.0-999.0-999.0-999.0-999-999.0-999<NA><NA>
203243/COUVIS_0060/DATA/D2017_258/HDAC2017_258_02_14...<NA>2017-09-15 02:14:02.4332017-09-15 02:14:06.433SOLAR WINDCO-S-UVIS-2-SSB-V1.41/1884137029.000UNK-999.0NONE...-999.0-999.0-999.0-999.0-999.0-999-999.01(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
203244/COUVIS_0060/DATA/D2017_258/HDAC2017_258_02_15...<NA>2017-09-15 02:15:25.0582017-09-15 02:17:33.058SOLAR WINDCO-S-UVIS-2-SSB-V1.41/1884137111.160UNK-999.0NONE...-999.0-999.0-999.0-999.0-999.0-999-999.032(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
+ +

5 rows × 28 columns

+
+
+
+
+
+
dm = DataManager("EUV2017_258_07_00")
+
+
+
dm.calib_label_path
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2017_258_07_00/EUV2017_258_07_00_CAL_3.LBL')
+
+
+
+
dm.raw_data_path
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2017_258_07_00/EUV2017_258_07_00.DAT')
+
+
+
+
dm.raw_label_path
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/uvis/EUV2017_258_07_00/EUV2017_258_07_00.LBL')
+
+
+
+
from planetarypy.hirise import ProductPathfinder
+
+ +
+
+ +
+
+ +
+
+
+
ppf = ProductPathfinder("PSP_003092_0985_RED")
+
+
+
ppf.local_label_path
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/PSP_003092_0985/PSP_003092_0985_RED.LBL')
+
+
+
+
ppf.abrowse_path
+
+
Path('EXTRAS/RDR/PSP/ORB_003000_003099/PSP_003092_0985/PSP_003092_0985_RED.abrowse.jpg')
+
+
+
+
ppf.homepage
+
+
'https://uahirise.org/PSP_003092_0985'
+
+
+
+
ppf.nomap_jp2_url
+
+
URL('https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/PSP/ORB_003000_003099/PSP_003092_0985/PSP_003092_0985_RED.NOMAP.JP2')
+
+
+
+
from planetarypy.hirise import RGB_NOMAP
+
+
+
rgb = RGB_NOMAP("PSP_003092_0985")
+
+
+
rgb.local_path
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/mro/hirise/PSP_003092_0985/PSP_003092_0985_RGB.NOMAP.JP2')
+
+
+ + +
+ +
+ + +
+ + + + + \ No newline at end of file diff --git a/tutorials/assets/NAIF_archives.png b/tutorials/assets/NAIF_archives.png new file mode 100644 index 0000000000000000000000000000000000000000..807cea57507f7e59d96ce6d4e457a676819f70f8 GIT binary patch literal 157046 zcmeEuWmFv7wk{zMoJN8KcSw+i;10n1C4294 z&$#d2@&3Lar$;wcT~(`Ut+}Rr^P8&)m6w%3Lnc6mfq_Ajk`z^hfq}b*fq}I|d;uKM z*C)OJHqRUsCEmf54-x$Wz9br}OPR>Xz`OzW5no58^SeT^)z{r!poKEK=iwS|idf1kPu{{?iifI_vpA`>>Y4 zbuhw8B2rSoR>{cT*x1_PlZ|8Cj1oO?0LfNT!vO{cm-_eTnUo^cG4QNuGi7y0b(s%5 zMmAPV1|MwA;*tIftG$3=evb1*KapkA@a|I8u|NAhQg6z*Fju!kB z>N4_VA~yEMWE@P)Ow1Gl$Yf+>eD)trcoap&|85R^xbSvwlIGFm%O{&kao?jvgKU}SG*>u6?UP4@e~28K3Hj{Fo9 zzaR9k*I)fKb~XF2Cs{lEJuF~=;NNG!EKJPcf885s%J=&ykGz?yv89HnnH3;2;28oO zZ<+c2T>pQa`L8GbTTAu-YRU4J^X zKDCex10w_@B`U1!`fNWPK8sQ8p=bL?bHyqqD7QIJ!{ z@eP(D?E4T{WGt*P;<3e>+e`kZWtX9Ju^VhK$0(^Ysyf~sno{#f1-qfDuZEbo96Ir`E^5!4Z(g-+Pl_Fn_f1R6~n_SVC zy0}0MYa?f8%e6^7Yf$Swq1~RFpWl3xz1fqW36{Gi#b@Z@rQ)n1XR){878Ws=UlzmVLCO{-xJJfxNI_v@hT@2$o`l1kjs zh=i+#N}b%Hgg2}wei5y00rtKg$7-_v`#!DaNolcOmQJqrPa`8)QPLD+X3X330Yy~W zhn>Id-7zw9W$(tdzE?a6A)A4NzuI7hQ&#!O6=+z$$^6lVs5TZ_mJ350RACU#9JE2Q z0Sf+E$;6L^VDEcO1w!<`#=r4D=(|Z`lgcGFJR3rP-4mymi*}N5OnbvPFLLjTGDbTc zD{(@F&}Akhx;7Uy9$bcw;C1e{p;PWp{b<4JJZUYyc94NN>`$eeh*rHb z;#Sp5{m}qD(U68nV#h*z%^`BW0G&q{S9&us#9K4bTw5MP%YbK(-Bp!zYJ`%t*Zyh? z^xiYmUrs(qy1fq7itCz&QO90@eOAH&qphB=e)xES?{-is|b#B~{ql3hT5(1vIj$ zdNQdkKB*Rc_vU>qXT^;L19@8+7ICR;UqvEGSqp#ET$NlZR#557qg_(U=8BDlm4bNH z31qi*p6D}T1Uwb%exj87%TSwWidtunioPC#680q@ zUr_N?it(M6Ge*Yptq})8dfV)Y8((-dgz*bEo)|v$-XOO|U>h-33ySc;Yefu&)dNnsws4>W%W*B1*+m%cqzxMO(H?#wk z8xha)E^(jDVAUkEMg??g_HW$}hzMS*1@{?0oRFS-BT8f#5tAPJ>rHrvkeZ22#UN$H z@3}77>28b7z4GrmvJ3EUn8VDJ)j}Xao1{HDdB*4cGfA6poW1;>Q?<^hNx7hgaSpQ} zs#sett5q}&$ylxc&1|~2y&8-ZYwM&*mHr7k;+H6)*cy)D^V4!6Ep#hvqUa6}IJ3B? zzF{sQ3Zbae_h^7}DU z*F~`uS6j3k3#A0=PF5|u284cAo}Q^nWu22>bTHYwoQdJn zLd?PD7`aT8rvgdVNAV)c706DjZ7mwkafT3H#XsqXuijliKWRxOO!#umU63A%Y-aBX zxV3%tVm%N*LTVJJ=yMZK!8(#GD37t#)sqm|e4sn{M(*aKAHHXdE2OX$>ESeAjLL!d ze7gStJ5;a5B|BpGTX;+Il}MwuSsYf(*3@{;dNQ+DODdOLb}E}$oHmJKwaEvyYSY2E zHtr^dS}BodR(`ToD!~ikZ1}o#1rMJ5ic9X3K9&dw?tvO@H8yv-=?u%*!UD&oQaVdC z!>6_y{xT<=xqD2xrP@r=T~>+qP--_)FBi|#DEe)9jyKKrvvf&>`mgJyotj1YcFtVA zs16#QTOHYJh(i)l{60HM&G6X7RV;B=PY8K0AM+c_&Edu^*{4aJ!aXVC8VEi>-d7sm zCG>v|?T%+8TIYEmGL%V#Fw2s`p1DHixQ&gTpnGgBfkC5{f%wMSc3t9Eg#Dwdo!pIp z5ePeo+xf_0c+V(T2P^kxhX@i!@LATi!(r+5#nMbU6T4R@7yGofLy_Bdy4)b^@Jpzm z+bPxS`7vkw@uK+;&lPDe`|1gIB_0-OjNy%Iv<2g>qK+shez}Stm+^7=oMnYP zWY9y#!=O%XSo1layxNz22aDfGm6rOh;`?}LqQYogR_6G$ASu$$ zrVfw)=99LB5l%v)Xoa5TEwRu0_ito%p1to5vQ?N}#UBch!l1way%AQnV}>Ij65sE{ zO@Ov~H>`C_Uw$_F+}Q!PWVl5V~*!!#S#PJ0vgaVN;Z zMz11ue6j4-{Z5&*^YhbjhtDxa-D`%K&J)_<%-2F&nvEUWt$KJ2wlS3}A3F9X zNHL9t3$<^g1*rLKMOqN+@85NV!xa%k&6^*uQU}<|w9NECn_>$Oe3<+1YuXIjB>l~} z*7$S{kApo$bGycgFiMcHwF21pq3t~g4$Jr z_a|Yt=cEL~nwmn_o1i@o2-T_}QfUjL_lFf}90UIxua16!(`j-JutVbgE*JTCWVxAF z`!Ob>j89}B8gI$A)_g17)}R+H*5A`C)^Z@Eb&}Ww57$235>Ab!WHQ$wJ8_OeL~lad zIYR^)k5^N3rIXw?UQBOxi663DPMF4W+$YS}o-&{b$~6)FY#kDj5_l2xQlN@wgPfjI zwV%|{H@!ozU~#76i^QPJ7|PlD4F?YS5apfmP=i}Cm_Wd={?tkSv)~CLPgf$n-g8nb z@PZ~2X8wMBSNxfMW-G$9F~ZGM(Rbf_@?~3$HCyriU7|0g(jAxcRS+~Pd3oNOTqRv+x;5sbJN2Viqn-SiDpqWT%y*a& zh|v!@%vc*Q%o|*JY+5i~=aQd!A4F-gv2B<`h1oVZ0(Vnn{+ zP<<17{W)6eW-o?xV(u6fbtsnEV-pusUp^t4nDS;{ng79PB4So#_rVOhONn_S@c1bx zl^k~267$+b&Rfe#&RgVS$Xx<$$V)Hb)})x@#wSQ0QLQuD=~n6o0^5ElUn0Dal___S z=W3sp6f+j_7qH&=HWdTD%-#4^vc+x90=ZUJ7s=a_;dqg*w)~|)kT$H!L)-Oa>n8cw zFz#B9KgYf!G0ok<7{@5XrswmosD6>;Qf~1dJ-OLnp^56(iA^Jpx|cIn{Ns4T2Iuc_*zGtE(xAgm;^u;h=@` zGyOT-e9wTgT-j6A$M){#Z0R|=tWam7$6K-Z_E4sq>&Zyfcq8%59#$om>0N+eKVi4oU{^*Y&dp~=sI3{33oH7rU+X|( z*Eep1w0G1BFW%xL>~^_^b?^+7@rm;CCuqVJLxSc*auyAW8j^Yd|BZpc4^(!~In>5_ zy}s98J4xT@KR7)wo=`^r1f7m>G8|r9CBe7GP1tF!d_FBWqdTds59gW@P#vQh{>BuX zzb~n|;U+Q1hOmK_GO1;i`}TQni5q8PKlyc^(@6y6g)ts?yNCHT$Qb8QzP0Z{(2sD7 z#`HNSQGx(<%5!gKzfZH{{91L;P1}tn`nYVu#LVMu)=I+&y(9SOfE5Ns2EXuLiQU)mti&9@~4JH?IyV`KjJIK-c&VVN?KofTu(q<*bM=h!g|!zr2MsVP9U4VdZ#Zkv;pL-#;;*Aw#&|zWDqOmP+V< zew!i5uSiQrJOYtk@_&4jNx;z^Z~nypfc(F70|qIVTF4j7$Z|{jzjTAlmk2YfJ&DqY z`St(S4XT(#82Hwj?>m|QOE-Mr>_vTG^`as=a{nWczh>(HTY=kh0XUYi zr8(v&5fPE%iV8WvoXQRC*gV>yP$+Vpg^i8cdQY@kdV2a`26eu7a(gIkMqz&&%Ew;n zBxR3-+9Z#r{Pn%^W?BBzpOi};^|K~~wTDf6?iD9g|LCHS9iYGTVE8I-d z(=Dr;Gr#3Jp72RG8_zG|J!}wxUQB82K3pxUk$PQ!-90=+H-rV{qL`(6Ki*8fDJjiX z)pau-d~>|9zX05M_g6ut^H30}AIquW5s-3=;cAF7LeIyl)+oNmGW$~T<;#`t*Nn@C z&JLxrOY>jO80`Y`kss#2`jX1;aY_3O?I`jUtGMT`Qs$Vk!=#FuO6KEvLG88Lrh;tl z<~mB(7cIk3>WQs18*6md<#+qgjX3Fv_I9C9GlZ6vzM5uv3GXU6=L2oL&eE2sx>|ck zJW8)L=RTXJJ0-f`pY%ZMt=b+gkts-t|0Qb+z>23eFHL@@1(I19aKKzJIh}OlO(!Jb zsA(%$0mDb0XGW;nl@PpDnAw~;+er`1U`w;AOL=#cu1WO$YnpYF)S~-dS#evNpc4kh zXd4Tw_dM&ZM$hM1$z|42Y+3GpNOaS9(}^}yTR5fPBe&gOQLJG=ld-#OE~)3i?Qj7etnoCLU= zzM|!ApY)nVFsWC=JKa5}ok7>tK)hYuj~79KcjT&#Ow!L#_)|u5dYvM1uSc49zc>sj z>~yF`iwu8Xe!Q&55&qa)FuJCxEXT^LM4Jh*&(^KIXV&@KgUVY1eG9YF z+lu<_Fp;ImqMNlFjg4OekH@&^EMj3+Y0;BDH$>gUr;5-qN7sn zymhmRtwlh4Fd}o?95B7wm`R>KOL`b%-yAg%A%M}=0*`u3F#blcs@YurCkB&z|4UO3Zr1FwG1;mbs!FYUo%xXf%={6oyai#?>?UqZUg3exi{F@o*v zU`e<1yC62|LNMX_WEr_<8(;A6noHf`DI^l>p zahqL#+xIUX z5=3^QRFv2+f_}UU=(u;MGsUo|bdA_E$GoA3cZb#(le!qtqP@psttOWQV{Lnssf|t6pW-9~|Ge0hX^B(t|whFvy% zpi4QbPg!WAY7m z{QV!CmW7mya}5w>w0PRKzTBmA*=o3=0_(tR4?uSs;S}ihDTy8vwXC@p>4z5l4=AJg zvc0aFmuCy!TzY2f2O{jP0HI=}6HmZrv>KJ4(8390i!APz$eks_^K!Q840%l#kq~h^ z)uMb9N?eU`{ULQo@Co9y?0J>aReVt2_Fz>zXI`R`-V+MU>iNrVLq-LrqU#qO2*&!i z=f5rF7R?R6tc1UDqRv{QP2W)0XdPFbX=Yy?~&gGGnV-svg;GN%nrx zwhQgn%}>abXsdkzu(kn%Zrp6Dv2;h{Pv;y9A3w`D+GuL+gkfKkxbKi(6bL>@UA2@+ z`Z)RAAl5HB&&!jOmavMTUUH*8^)Tyjm5LvD{IEq^V{xsotz8}2^E&n?4Y-U!+p|Mb zz$B_Vb-_Xq#_nW-Yve+x!q|MX%k9$TquzA#gK$q}e9?lB<}Z-yO92EkH7bj@;NQM$ zgaXbS=XwMMfkG}>^#a3gw zvRmS%?kKCUP^)Z#jmW1;Mp4)hcmwOFhpXu>hpzJGZF1PGp2(vdfj3NgAOUQSphd%E zr(}OC1Eb6mwUzK{LU)|6rbRZjCVKAe+tJ?lIqz)VBEGH*U;B*b3x1FP4%}Bs;(DkZ z>fAc$1-Pxr>|x#`z9V_F%yxtyJD#spT4fem%jlbeksufoBmQTN+Zku@N={7XS{LT_<#ap^8wR$NBQ$9;b-9IWcH z?CGM65j))(F!VFcHTG{0ni>M=CCyvh&wuHqJdJ!wdvG&|dn0BfgSFgMwW2-vdSo1q zzrXWKv-=KUzhxei0XIEvs220Utp7nh!Hr@!gS!N(f!({63f2HnnWP}yatbGW@d`&a z-Uo;JSXf?6uA3Q;`W@gwzap#~Mf2n0))u>j)DYXg%mm^P-z3JOyQm(o%%xZSNZ2=D zm6EO?kBWx1u-&`mr&eO^Nw4^Jwar=XRb&W8E3+C|P|VbB95SRf0EDZ*)&vOSuz4pt z{9Rxb8pn(f=*Fe1$46bt5`#GM(-)#JxKzLFyz|z?0vegp9}k z`7cjN4rEa>pV(+pe#=BNU8oFJ4|r|t)@lrNY|p(w@q}#iE+ZWXucME5+iKSLBogL( zMyyut-~`x`RT@|`f9aq5x{Vs(mur20ec~>8eA*AL7*8eKX0`$!(Co?z!hLyD;Y4gsm${p4ruCDoJ&SJd$`7`{pJ%gxz z=3tW2oyJhz=3~OC9E`^ii;?m!=1HMAZsx8vj_udSudo*WiV-gpfXUC+OuV50jK&uh zyHI5%e76@?+ZtTL;C@W5Jx~zTcmY8dQI_L7`M!b`lr6jxp4tpP-k-rR{_vNA3za?m$>NwzaS7 z#tqk=tR?XULF2OBbB+1Ix-T>3VKPu6F|M;kSy2ZAXP)CtQoiJeX1n_vQy+_6G>P*2 zWYl9+Ya{p~^FIy5i~^l?2OB;^D?JS3K`7}nY;6aS=vX8TR}lVg`AnMXO4qSFYV}p) z#k8K@LG`czPEvNzcGDS^_+-!W!=VfPcYbUn+?Wo~8-d{4XLT%0eXr*RBKP zbX9$gF5-kGhUO;wQH)#0!&!aAnSKNXN~^oJd$NqKL~EI zR2u`YvA2H1o!XIiC~ja0BnTZLMroxGyn7f$^iD030y?yrc>@P}qU*Mq5SCGGEm|J3 zsoTTi9wIyvz-0o)#jg7)K4Ysjp`d{K5;XX_SC-tvumAzZE%ZW6)NX zOJZ9UQSaI`_lsddHLuRGukI5Sf$@|se@%-`*#*iTmcn$}F7cXl(=ETs3 z9~QO+3YgW34w%^lELA=Z6ya@U=aW}@pSKeQNZ|_mUWdSkREE8M9MQ60Xs|OFJ>&ah zX8@{?0=!gbO8l!oUTO{dr{YT2yXVRNebZWW^uA#8PZnQ(`hB&;xU~in)DaQ^DTb)% z#X=G#sm{uWtZg)RnkoA8#xpDOC_oMYf!z{hF*70+c1undh!70^(dYC72bEpu<|Soy z$jx7FAumbKL$m>M0y{AD8|Z|U9<$0U7 zMOoR(BkU@_a3p5{zh&dn^!`?3gxKM2X2C5Wbu9n`gLm>!&2}MjH!(TbH|SN4b48iW=^0Wrf%7+?rrl3OpyZ!1Wgdre86VDm_zzgO!y$WO5-d!}@p&awa0n#Qr zf?ymU7RZ#d0&L;|*qoIAhckc(Y60LR;f7KUm<~Bc2$6vZ!{{9{g^VgwnB3IaL!Okw z#5?pI4fxnuXZ(CZ_JW+nl7Ut*iZAG_Duw%ezq0D6JpVv9nzvkRB^-+g=vE~@YVvJR z-MolR7vOaH9%qNWRAW8Q7eqj)`uJ+`{qI)7QMz>4DBkd2vP1R_^M2y#x(a`# zRgQBz`JL$$-fU+sqtl#u4qOD{fMc0LIJu(iTiu$n;YtfDZP7^2FydMPwN_*NfZ=2V zh1H7>31>^0G|Cx^IoEudIf`{HkE_u7%~8E$s-DLV6TY=D&=rU}`h*NMzVMt7^ph+J zyP4fai~$9`+47~y+Jnk{Ppy?MH&jCLXju;x?RoD7fehhuvOfp|eD0^Mm?j zRe&-Q7OPZ%h)b`869nnTUcW@3BRuSzYT!rl1;2sju!y?k!nIy4dkZ?UoAIe(v@;X? z>~&f`^EQC0*~zKfh;u^j@Q2ylp>t>KYdpJkziA$KcoRLaC@<==7u5M8u-D{zh-d~Q0 zKLq~?dLx!VGR~gXoviy8*_7Y{n9Kp-M~#uQ<>LJ@e56*aOyL9^(D^l(X=f&ilm?4N ztl~fUrU7i-GSwk;N8AuNOH%U1>zB0N`n<(t$nO;?GHE=7kpu$hn_ccZ-yN*6dw z85T9^I;ZKP;CCLLYC(YjsX;xHQEZ9>lcCecbFWM8c(s6E4#`(c=FbT3NJ1Q+0P@B$ zdZDa-NmI`+IhdsNcly8K;O})Z0&}QRMGZ1UCgxH<0+D zulSc+i^KdG-d?|*;ZY3GvVkhfEFV$%AIY2pJoV=qQT8y`ks(_o0}?^en<}arVjy;o z?W%MRtJI7m^pd%t#=Jz$_rw6iG)OWUZiXeb7CPcZB@IMuTnnRDMO6!0fk)rz#-H*4 z834Qk6SCpg1ArbOBqA!^u?vEKhfy*7)f9W{>Dyw1-TJ-=)Emg*O3sFOD|TBvVC!Z8 zIvK~^c8GHsqWMx3RQPniE$IFgYu;Pa7i1ug6yiKH6Z`}afYbcxyZH3ghJmV?U6rmI zEPbo9NPEwM?qvB+MEURM0%8N(gDYFFphs>VC94FMQQPyxB#{;v2H?gGtcwBG;T3r> zmJz6ExVe2ASP+OekEr!h+_di&frD=|Ua6Edq4{dTA-V}56X@kMB{1FtWKYisHw*dD z13+g_tdWd;ymA!P9E4?ewZ<3%(5g+KZew_c=e2OhHpH-Mm~{9rj1VJKjRnxSrHMvO ze`wr5qz$o^l1aF0{U21P7&h8?G{>`#WCHp#gsM;J>=vql^2T@7S1bWoYx-qFw8xDG z!pCXM27b5_`Er>gO~s{+phuPf5Jk~%fi~Zt_D=#ll8Ho``BRVJW0fZ4q?`WGw-AYZ zBQHs}m`iV1Sko75rG0^}^@Y_m>K&+#8E^8ef8lx61@H2W>?gNb=Xon98-;a2dS4K| zU~^Zd43SBAh8spAnPT>bobBbkiZ*Mey)xc<<0W_js@was;py-*<&RVw`gaHQY5-P} z`Kgj8e^})Mk2@V|uYUhxjac0f|Cs)550$!K$w4Qaz&e5xsk?y4PFG7>p&U6}C&!M; z4M0fZSK!QxUp$tD1R(tFhnT|v6OE*Rh|By@S9wBT6WnVu{QDIILB#YfrqK4J#5n-t z6kY<b~Ui6+62pN;7VX4y6MmtGug@7!RB^^*q4Sy z!v-hV=aBE&NOtHbReaYg{s3JivzCJdPq{H2GTaV;aobA3`h=3&>^S)jUR=dck zJ`40jg+}jwHM@(h{(8V^-i8UgY~6g250Jp)g`eCa|HiGU831I<=OkzSQ^kp;rA7=@89-nS7`c5XiG@7qZu{_xMc{ps)9kXd3X&?*5c_R7+5;Pxpl; z0Al%If+Cz@tx;28avzq|-q)Z&{T0rDxf6a^$ZC<<7TpIzHGUCC1#$BGAa1p52|NB* z-8Ckx9eTA?!ql(=d&KX21gZ#rNn7O#?~YFGluQWXFR#?39PEgODD)o#WHpS$cW z1i%6YC(4@-%@Op*AAzFG*WZ{o^{`t8gDeiQE}8NqKh1h%6fDC}=1a+BGUm%HBtdnTZv`pGx++sD?2*#fc*lT**=A4H{2QlmFJLu-_Hp*wWsXzbeEp<6yqS zo=0>9Gr>_JVye51g@j%w2igX~Gl`FVO(IZzDK=LrWC*N&)_fNr9E+4R%`s(MRJ<|K-~n%B#fIHKb577Y89Kz69W^pwd2AD#G*PW(ST=6nm>d+JG#)81k> zwwD`UjRJ8dlGB}$qa++@ZGOEP9WW);__ZFb@+A0F6r}4em9XS4T~uYHGQZ$ZG8DX;1Rl)Tx1{yn21hPmUKC~M zJu1F7!^Y<{nYU8u*)2)ynz6!lvbChbBzezjQnI)KF?{>W2l|xL5I6_`mv0J>7eX+1_#YhE zZTHF^uX%V?=7AOLmw8F57~gn+^pNz9zrKC8LzrDAdB%F+a=s*VTGt}8*n^Z5IS(X& z*lCu=EL;n2wzMVMkC1owyGCvq_wL3qA9}ni85>AZY22T)0J94VtgLApHcJVy;%a?B zgPw?EY|I>a%0)h1RQRv+?F;!3xgXSq<*sz8)Yhwg>0i^23UTw?PRE0rtUB#8KUI>0 z?~!s&^)-uwL?mXiZMxKqed?LF{8c+X^l*=nOf9(7V3qYcQ9h9>k9AsC3r*nOcBOXD zLQe^s3ChN0eJ*Qu>&Wie7a#VC=8K1QF{#wILVtR!m{a{7V95}wnZ=y-+N4?u3-7*u z=9(8Q>~)o8RD4HAL1y{sB8_0i;KO0FW{m8_P${y(xm<41UD{Wj_PVK^q}TaAaBpel zvnhQQsF*z}pzlfhZ9Jr&Ope;T&5pbABv`t0@Gshha0)c$Z8F{bOpcmu#Q0cMb!SO? z5c7IS-Ry?Y1)d=AHdh+$ta0C|>(byjJV(Xo*S?%VkElZpMIX*}9Tmg~I*fOqR|IiE zvv&t-m};L=qC=pslEtaKC%}2H+j270rG%>UI6(u+LFTZmob#ms3D2K2HK=Y;7RGGi zePChcU)cXNQe%d5LJ5LyXQaIuVAx$z#^lM!!!uSPxh-#}yH4+yG5_J0vLBjx(2L7BGfQm7B%OFF{h|{&A=FfQNJbgYVtQ zUd7%)1Ga1>*y9R&Ugpp`NH5`zsa1V&)?qlTW$0naqu6S9BFsU9=;NqI?yF>zj$#Fa z+}CZ9??qB=(-@&Wqzo$G2XOX$1nRH;EEu|he&!Qo4dptKMlxs|lNLC)u^=nl<0H@&Sl zgT=?kB`X`jB#Ks_X;gHS78i?;fO=HSKo0wL+tX{drMV>aceND_*}K{IA04IJEh z?>V2>FPFctZk8E-mQRbA7+Nupr=$GjRNmIQd%tg*Kp@!4qsz^DeZ6kJlAm^Nh~y7$ z$$H4DHwYdu;xuVKP`-Ol4}XOQa4F_HDW-nwb#B`#M$StbuQeo%FwDF+Fc}>UN$Tp{ zwiG4et!3#7P9E6}TAuarI8eg$~LZ6A&a83vYMJ$ zG8dwSqkAUd2NJM@ZX;7f(H^KLIR|mm7y~;7G^{kyx?sO)Dr~vjI-%G)kCjQ^i;#c{ zR-z-k?plaCczZ-%ByrURSOW6yG5%(|=Wa%}Eez?!UXV`}a-B)Emr zQ_{W2JIE8Q`K4`yHu;*r&g84i$HvmF6=@{|t6*_Q47x(xq825@+FayP0$=uKvwRXH46d8K&U|Wt z&{-k#)qm0|Ff&c9tdy}(Tfn~bQsn11KOU8s^trE<;?0)c5{|N`i8dP}nPQSWwLZ_w zOT549?BK4e-LVtV;(nF!)<)2fls^GIlYJoIbyu0T-b4tnxq z>^v{&@|N?=XF%KgVXXbLoa!R4?XqXyE1;(02JTGeaI?RF%JHkD){e_oT@7*XWUc5f zx3E43@yXk7PhbjvSjOhe3??KQ16(vzWPHM-1729u9o)ASX;saK{ z*_%x{&x-{`I_}n>qQ5ZM^Uy2Kz%w1{KuBViNKL1yj=s_PXt*85Y%3qFQv&NCJCWKp zi$Jt8=-(S|0_~-dwVVvrn6a9wn@?oU%ptCaF1u_dOk(!Gx@mYlc;AWl?nnf`Qfhhm zaSJ$Oe>|y1*;PHx&gM~v{!Z2QgCnR$Z@Zsc+k97W6Xdiqh^Uvf(AqWg1Cb_p9Et8qj`Yx++x5SrU|#pzOCj>c&$`=-^&{ z@|xuCLLOEus;GdCzGI;6RVs6Gy{hU_%`5wj`XoW2zr+D-AV}0H4-oUY|vXDd5=)7yp!*91}*?P z-dMP*x`3GDd^I@1>tm}9_KQ0AR-QZlk!3wQVlR27Z;pk{2W$ZcMj6nK?F^J`Sxs>E zAPMl>mnCacia5=KFptG6>@A{0=myr{^mntZ7XeSqNo>*1bBhh*ErbV-6Q8|#i99l` z7;hrWe$*un#@^9EG(DX;&b)3-LsQ%y!c;lDY%#iwR^=smx6>Ij5GK++eTCvlmqjouNX{PugXl zO3UieTN-`^aw)GKL;67cmk)M#`36z)xiTP(vTB!P7-tY(B$&U{YTb` z)jb^N<$1hGX|uKMlD34u!H_RPVpB9vali{Gw;)hD6Ts+n*Gx%p9mP+tJsVOXrIh3x zN)vpgNbqsdimNd@sABpVoL`2+&}*ls4cceeT`#om)K)bGemLQ)f=5yh2sYkA3Nr35 z9v`n#i_%^8a~9xAqq%ALPFLwQW(H;aj~cS^G9eKSQ0`+?eRdAM0{((@)eDBEP7C!P zBPGvnt}b#X+q}}g(GA!Af*J*&hk#tS+=sYw0zgQ7%dNIe#N~$)b-msj4wO(uE4(X) z2L4$6?F_w#VyZ5GHcrm;)}U76%;uvYn^R_wX#Vr+twa?ELH8koHj{8reFngPIy;`h z3t|{rZl4)-BG0Fu#y8zhXDUIdVZ^tVYUuO?>OTaHN(uF%OYKONcIW@XinS5ui zk1*B=>VgyCBXqsQ%uM5W_=0-1A(n#bk+^vGA!A`1_HnEwXF*P{Cx$mAg&VPqBUdskNN;PK^rI9r+%T4^M}fqg!ZHcbZa4~J_LLQQ<1YWorL9C$g^;7uK_l*xd|~ALmkR1=^?1YMymd)a6tg2J$3V`tqS5%-s>!d2 zc7#Kq&Zt}wv;e5v?q&7S&0gCkE-|zS&+`a&JVV%nh~jmWrvd!qhWp4+>3F&17qASI zL@w=63LlNEM`y!gO|naltlWzmP(R+hrZG_8(V~x_9sVrzcQHbfnGsl!#+JH>M;Td{|CX}jK+7m3i=8WaHQ2djMq>C~ zeGhiij0l_*#W8t0{$cnJUIFVDdTwGp+Z@WpaJ3JYC6XwoZ0DEr!kR2Edj|_lKCxq& z{?3l@4-q6VlJ`aPOpkB2={tq_nzsGeH@;tma|w(@oOwp%#D-L^jx^K?Mnw{jV6YAi z+9)=s-gVV!Y=8`!JJAKWEbK03(9A}lU7kBfeAsHKRivm?J>Y&bX%1eyCKz(SyIi4`98&iAGSY zDd428#yXox*3v?kEm;DC?GCFg?_JO0J9zu19i+CJ*?Ws_4HQs(6lq^==TCbsuX!4u z>eu1$w^5N@_26o)luTRu+q5X)w3Ta>uBPndnU9&&T_8iu_Ey9vQ0m&Z@5pnvb3aGC zx~RKrSTE*Q7YxEb8DREXjBpT}X^*aX73ommBkZcdd%wbVJ*Bmz@5!&~;q|bG+;;d9 zvodEmQrR=Q0SH7hYuuvq3gKa=&s%s2ekPeXFqzGH+7)48E@`J#@)TL61j?8W6Un*m4 z&ju$jZ!L)(z}7WpX(iZtGq=Bude@pkU5*&i(5am&UV!v`n3mvs2q|gfr<%KXuT*4YwGQ(*)Fa2JI-;2Km|uis0LC%T$#*> z&gEx$XrvcE#5Re&*7~sTsmfd+W>QL*-wKt+a`BuwIO^-K8}=VZqu=ig8hf=1H`F$i z_IXa+6^t6=-&`U=-i~_1V-5J4IDBu_nOZdEek=E?C5Mcs>6hV6Oe(&I$i88vPeM}%-7U?<55u{zo2?7?TkaIzT%Nu@5W zaXV^|>-@OrYwd$KaL@ zclr(}_vkW=X8)1|*7YHlFYd715u~@24%*F?S?f!YwZ8ZQWgM3Gxr^VPMhmFW1x z1?_)~6@*Kd0DkFdpE75R)|ukL-&-|*26qzBs2nN#>c?8zPXPv*T0}@|Mia(EWVkzr zCuzQcS@rO|NW%xdRz`P)nJa_kbNh=M&g~K2J}78GCm6&(O^R#8%=G5yN3=(qPR0tY z8C1z;wm(}|>a(t%=iaw=mcEavtBt99i18l8(f8v!ZzEje5FyD|6Pv+i|A)P|3W}@k z)@Pgt-xmOM_+PmhEG6$PML7)^!2;>k4Il~t*xGx`CEKr;48KJ{*aaB97pmg)Gvx6 z21jxaq|}7*DI!*@E9#@I&h5j%loF(gwLWj>A?2C+jHl*It6|Aa2Y1Z<@NS$vyY9y& zat@l|m__;TWPeW>p0N@M##y6uclSJXRRo6``8stQE3cW02H!j?9w+?+k6Su*PO%ZPzJP-Khxc<7 zVKyzzD;GLS#N5*vwA}CHqtVRl-VoPP&y}~6j|Cu4@g=NxlZe1 zgQV~tgc*C@Jx?$8&xRHHe;E~RB~J3z?I-S{+*6a z@w$@wQ_quO6Hn8+$a)do>#i4pYfk>GNkI1~KU$$Rx7VHkdL%w7%oRoQ*5#J_^QLO6GpD_X_Y;`;C_#>EqE6{b)F(og{dn4$~ zyZ<1<+?NHRj8SbTXSUuuo7)M8`M6A2ijlExS_LS`v)_9S7@an#ttMY5zlBXIYiw_v zSKw}wW6JjrAdxWPTG&p(Q#7{+1tVbgeSoz%@X(!Lixqg( zvyHRffD*8FwLpL7okzjqJ0v5P^(|o(9OgehOEf&5D>3_Xd$mA2fkNCT?5B`u!ioQ@ z#cEgI6cBYsgo(z6lFrF+{=Yu7y~1O^JXWDBpJ|jFsHpOtIo&gSx$S=4`*{4}#G`1m zE2;$m!E**Yn4efi?e}tTLg_FiWKOff$rct5Y z(E05*pPczEIEZviBN-Dx$ydnbH&m>3O3LBMKaUp({+Ab34ZjAzPS_qiWcZB*9PROi zreb6d0TW4J=Kh*uhXLea3orH;Z37r*pPKeMT)7KMQG9Bxm@l(Tn%a}P%EEcA&Jg4O zSa&;IlmzcmP)E$;`Qu1!9ohc%tq140u%$C;FE@#2z0I5}CDYp2853ZAepAO}gV$d1)r- z+Cv(p``ce^3|SwWTp~J_TD?WlomJ+2bV_L3Y#F3?aO!R&uz%{7DgNCpZD{vYoS{E% zSc|ng>K=y=>tD&ZULiVAxd?E%By-PhJW(O{ocjxpa=WODOA8ftwtwXC;AH&)U6(sU z%R!6sw6;JJR?jqgriOQh?njCfD&!8P^sCj@c@sy;PO4LPOTJ|FeLsvUT)RpNnIew% zjk7)1_&YGqyViZiNaK-Xp_>^pxNN9%~+b-jLq}A2Gl3NYH|F4<8RyntIAK z-9oSSzg9j)*_O4^VBQTfBs0F;+@Icte{7L>_TnW|fWR%6zS!DZam7TM4$F@kKEL-p zDMGDAPylYcHEH+-X7{J?AA8VK>bX!PzLkmu8jN+9Cw6!$rVj{G+%ibGMPZStmN?C_ zocaW5aD$9iKYh`blKTwyTzz)@Xs)n5QdhoA%Vk*KLhcyWRH?r5HcB_BEm1S`{B3xy zwg+sl5u;;OzcCE(rtLRF%wSN)+|A83H7Shn z`v5aZXrB;GW-{2UD7r~_AwE5rtBvtTdUyTjHh2?^EFnMU*kxXGB5W=wB|jTO6VXd4 zW>^8{xMZ^k9kfnrl}&+{K~)OJxGs)ZZQGfvMI%CIY_X`)0=ZMDu}G&=^tBd&`Y5> zSD~V+Pzpm%kiXf5L$g=HH&1eDKdfOsfa60VILl+!?`B|w3vA>O!t3IWr-h0zN(kvH z&CNA@aBtalk|;WH5+vs$FR-EH0BgDdDd+_**lK^C-97I16@5jo!l>js(^~is3F3L< zl4#GKu`q07dn>I8U8fpOS(G@gd??!|+r>?L9G>#|`(uV_Y2q(^SLzyk~7 zB)pFiVYF~^a#gEdz`)Kdp9(^Sf{uI(Z{*ZKF&`q@z&H3IT-MdM%{SRR&e)|JV;q;^ zyBn5U!AqL>`lQ;>VXqtyzJuqh3t19hvVfGcc>Qa2nJjZPT%0MEYM>cx_8dAabmfA9 zIh?&HhFsk8L#VmMt9f8lH@nv|f}lA8*Lbzfxs3+zTLTB%kJ?L*!rAz-mQ&lJh_IN; zp)hAz|ARC{0%|RtMni**Ka1F7yU8W@3+gwJYW46pxx8Htr;bjNR1k4!c-4u#!vOYj z#B310OqHFF9pXcaYAji4|%aU<~Xfdei0UX@Ej#Vy24 z&AkyLfa7P$iWr;1fkeji&&uBVU&rr1LdH20cQv(_zSlW+)sbJGj9AWVI&LP~@MoPK z;FLDZb48WKB2d|0GwowCeDUaaY?+fru05@!7fAnby+j0M_Lk@~R!e6(mfwo^6gFWH8>5wY=njG00=d^TEF9C47S zFlncJLwF5zaeWmLH|@a9IzZ85L6K#|R3BXp4CayxA7-@$l<@0O(Ek zUu_`Ca<#^MhF!$F>MUWpf0?@8^vG(-9ePLJd^u4SUF&}8zFK%>7N9S{zJHxLWXfS7 z5Zh`NsnYC9QvJ5=yshZEw7X@pSvCop%o%68H&Y}gzjo4~Iqy;S=E?N7cB-N3`j-_t zhM&hTP{4nhVOig|Tb_1#T7@F@kbc^-@uU5dJ_sDRvf-M?jCEkG4%FN^(>z$ApuNjk z3vIjFBA@x@J3y3wv}2;2SB5Km#f1faNTxW)tXvO@hLe`tunDqCw9#Nbr|7|0bvB{7 zrR+s|Nr%HaTafq%K2LnvNJ^4Uy^YI?(VqNu)w;j)LpLhvZ-tqg2!CI9-Y=){Ywok; zL_;O<{^lky?w__0-rOiX!!(ad8#iI|i6T6yuWPrQhFSUJSK0m^GN+2Jfpf$Ip`R(1t2P!gyBPtq9$!H5wj#e zxDbL$)g4RN_ld^zT43^UP~)d@Suzc^KeR)v@H~`HXC<%|cX!;~0oUP2r+&;ptz!zS zi1N{)XP%c9?l~fOAJN8eUFz@1?lJfPa4-*1`J3btz%DpuYl#ePCjyi1 zYpbs1^~YM4uvX;U7=A0FtbEmxkwcPU{JmHjzTqW>-F1`s%CJELet%inT&}JO{}jVA zKfgP{cb~f9E%z&1xZ>&&USXf>tpR_BS>7x|qG?aS>~mT!ybLU+gU)LgTWhG*8E_SxK43P$SMgp@>4Cp@tCjMivAEsLj#LiJ2=%21(sB3 zIM%2UFqJjmg4K^>*zmm-<_2dXXe#naj6ObQolzR&*)<8lL62M;Eyv2A;E!B!Dc4x|Jxra3nS=yPfmY#gM^R@w}I~A~^ zt^vWpr09@oj<3JUL4fP~XCfm*XgS%NMzN0(K!w}s^Y7y226w~YJ;G}LW%Fy}EYYWz z;F+||XX#x_e$4VUbNM_f>96~k>g|*3=a`yh{a5%;JL^=Xy+_*DO|owuXq8=lkv*G^&U0`CFiyUE^)hMRw6+BeGqQ;jvfJQK^z|64&-U zuiz7qb&>rgcTWI+-`$i|q(f(5dckzYh!aHppUEW?!slNw{4S8mfQ>4Wg25T|V4$_6 z_U3onZko-E#1q*`hW5WrMi@%K!AAbX*mx5;kiu12ID^yw_FqN61%AwZG-43T7Myft zm&Z}a8k^;|YF_~qU?%APGg-ne3;a?HS@tqJKk&DM&77`sf7?lAfE7(OWohQ!;=KuIh(Z%OEvL<3Kf~U_>zCUS{oGp;NlDgZKUI4UM4+;-VHR&bt}g%2 zzi0T}4v3|x`Z&Y&KmF1F=gO*Jq!++EKEg{L%>S-;wMqeav%{5Kq5p2p)GGwwjZwMi z8~(4h*Z(~7e?G*2br%1RB>qPd|EHh*k4^l4Y7?|tAY1)C+$x2L{}!-lgR#(4s6}Z9 zeviIY1&vX%AT#`T8}tw*f>nuNVi4L5{PjZ z?|Z3iruGCAv~1#e>)7}ra%4qP*_aFMgZE+9c~;_u&Z+!l*pOJ)#^<%23B=w*BIGDK z8*-sO;#*h^UB2Qma|@zqG-1JPXK%3ZNp+DN82k6UKHrkC@TV2i>oz!hn+jP|uCl!= z@vr~>&7QPTzFCw^uN%F#b8l5#(XbhKR>SVHVt&~2hFG3VE`%5sFLu|UTNG*vd}Q9Q zy;Jc|2{`Lj(y_h6d#%A|n8dteYJFHM-;Zjud7sDE zWGE{riXzvd-XT zQ(YU{H6+vtmn28C8S&c&T>B)6EH0V2m%SGog3VY$fxrj4v`kL?pqhQmau%1uNQ#S2 z7%OS8`!2Y~I8&z8IvwrrEzuA~?`I(NBCE&lAZX3|m=L7)( z#F>qKy_5^u6$|7iD<>RW&PCdMuN!jyRkH8-PfZSBD8=IJnMH(od9V{EA@7)ccbxqH zh~WS4B1j#g+&@*P%E_sys_MFUH(HqAhd3{0+ir78S~#SX&Gx6M7%TrM=cXK8U&^sS zi99+zcrO;P_DQV%9o`h+8>w@!@R{JMI%urv_M0I72xoBXXc&@lfPH#PN*&wo1pTd| zO4shrx^}Lnr=hEZ9ay+ys2tsOq7ZEC#nN`JxCqk zmna(QOz>@n*h~{Gd>s4Hov3GWZr=4axNl5lqtqx6j7J4raIlHd&n>{#x`Tl~6mD~^ z)S{iI=OW`O?4e)dzxF)0^YGdA5pqj=Y3O$I4Gv$4?T<`e^NLzSgNx2=J*$J%(8HHa zvzx1h&(Pqk1;7sCwar!Zx(o@nVyz*g_WWK~$OlN`_Dd+If zX=xHNL6YmFB1bL7YjAjJtjhYMBLhM?OLRcezwsbo@VbA8rt(W`83or zz7u29zr&Ik(9rI+p=zvNBX;Q|u{w<}S6|K- zwir@SGOxdN>=p~SKs!iWAoEt}x^YIX0iI+UOC_Ot{J6bY&Zwokm~FFkv-Z+M(@_+v zBLg$O2Tw^`tyOKUSy6trPo5q@-ew3c0x&i?si24cg^4$32$AiW)L*QfA4>I1lpG_7 ztTX^p7(YCDtRQn1?uxV<9Y>*ZIS?}Jme@!w#&4TR5$EV*0zv}VvtT=J3bEG$mMm^O6|sJXok9|=%K)K+fDI!|KXPy%Qtz&YR=*8|+p(PSp|Bz| z2G60?SBI)G2MK)beGZrn&D$lRnAejxK<}0X7gGdEX4t>LugfNMcko%4+@FG13IoE< zY>Kpbw;Es=<0&N-is3pV1_d1h&R}#-|F))fcX64w6-)pF>pF2aP2<2>*o>wZ-^lr& z4JkkZp&LJZIxNwk%Oa#&cN6MQuU)VGd9ZFm1&p;U{VZ))^=o@}#pTL&7axCQicTTf zq>T?iA8n^9JwH2ik@>r9WJ?s>R)niE@mkOzZ(#UjU! z?AoAsHUq~{?uZThzbe8efHjMONOb10L5{iq8_%wz!0v+Y<~oqd zfr+;x@1Of{n!lm$wuwqz7O9QtpHK&2kxQyzTCqXK%a*9}mh3O+e()Tp3_ZW%rVu}~ zjgG^~$0(npn;z7?@yU`7KYf3Pme7g(3!qFh)4s>OhZay9%Jl?qxtwQD&oy%1puFGI z?k?xwe1L;Lirt^~RP^MyyE)l;bo-q}*-T7$a7AdYl2Es)KU{_+&%=#tp4(JVZDZJ7zUJOB!S%{84kjGXDYv$SVV#SU z{LgO76L?Gii_dwH(P2tlohu$S;@3ew;79#=eNHjPn4(TF(Q|G#-;8;IkG6geXiak! zhuTpNEf2R?*V7_3qwi>2GzVkCJ`ktKNW>0&7+wwBBdLd+lj8Yz%!djXR&NBHvs_n4 zHq3tRBNSNQUyhQ|)ms0o{}3TWWb3TET9n3nMvYI(0uX|iGMVQ)!2rlp|KJj~j%*M^ z?Vhf~G-C`dVg5(Vwmt+2I?r^{WU<`U{_JM){&=lR~g)q zypYjjX#p(5`!Z1`n}aY0FUvBS!+-JDqzWy_WfhSol>Pq3ZByyDZU<-Ng-!v(F4?LpNuE(wD!xuC?PZ9d_FnL$)Y)@QB zQv!t%uz~`*>3{4EDUry5JS*nEPkLU+)41FUlow70K0=VCcLrV96|w=4PY(N`OpfxO*K?p}3PQo5x7=jO1M=8Sn>y6+`rlvi_ z!KZPSH0pcQZIu)$NQM6K9j^p|){hrlBnF>Q*+JMiSHI4{B=cFEqIj?-PY;PZsL!KR z_T@yECEOjF(0#8eHnla(!?1YL7jgT7M9+tj&$-(BIy;(E>}IoquH!joB}XCiC-U?r zrJ0{fJq%nkf8RY*aGOF2FziD4K)3Dqf9$yl*Ni#1gz;Z{)|-v@>eo$^rSw*p1#ll| zMKnze-J`xs$bG`OoNjYi90(}XN*iQ}t&{=z-bTUa!X(zmQ1I*)mp_p-t-qC69R8+# zvNqs}PLvsvm7T+=Wh7_+n*PrW53Wge2YltSxMh_kf8)2hQ!*9q?=77&=EHYgH+3O1 z9Y9x+&Z})$jTW@?C#6Tks*)`I-b(gJbFlp;zQmUkKH{J?ZWi zig@HFTZit#mHja|%au!vD}avJfUV$~W(R;sI=k=^y1--t(a~l$jl=;)(>_L}wiiG{eD_i<=Y%$Eauw|Va!Qc^=uY%msXS-HVc?VNfu@)5 z;4K51@2?Nts$#dmTN0p!e+{^7?BO4z^edkED(nn(uawqfOLB&Vd1kR4uxs%L82Q*f zo^E8#1Kjo0P`+jBnb6sCnN~1vOo*uelu|v$X%!@HkJ`2Hf||zVrf1HtzTH7h`}9pR zFZJEaU{QeEOobAC3s0m66scBpNuu(PBBv}A@z8lu|D(un+$2$-bw|UGpi5C7VOjb^AqlCwb`yBE?Zskri_LtLtwp~uP zL9fO$%6)(Q`u;I2ziM{FS6$3&mIx9icjD4jG5>fPV^eyXr{%sOu3F=NR9kDTfZLt0 zkvN}#TVeD-ikWoexn=&AaCS3L-_UuKt~^50lJRUkaG)4+=bC^ylk66OWUQukwHW=E zFX<)HU9O1&-kde8rCZATmoC*aO`g5~F7vOh^onRde^p8=#-eSOd;!o;03*M2Y4Wdp z05`&$jVSvfS^?+@m!PgW>3B@40C^DNIbTl&l>glU{2heEU^jMH}SE3BYD5;u~9_Ch2fLT=Yo)5X6JDZS!sJzIIARy#h<(Uc1DhlcH9 z1_a(LGP8oQuGUX;;lro#s<`)uF3`riKewJ0zb+N4gdLUVY-tGMmw}DWzgbTcP)a7>_e0eUmV=^1uc(CC~@x~AdwP~|Fzg!+2GU`C(&5d+abyw9eq zsz=M26X)5T&%ASo7S83+ZFvlPC4V}qD6yUe5g+s(vpo3G$o;;0J|^rV2$@|N|BL{T z#>H@d1H)Hb0IP3n2ds+d|EgJb;5Cq7VMzWHkAWgW!bf6&dpvhbmQ!~WLMQ0I5&6T@ z1p8n+FU=g+3x&+$R$K;lMhH;>K-Np{Y!_!QauLNK$1PeduSpWVW>~epG*NdJDVa4%DSEQg>=#! zpBNe-$COd}f#cqu4qyh3bkqUwKJ7kr z++2Jk9v}jIy@88Pb%i$fcF9wKMBc!GhKlS1b5hW zIcfC|4Qsh|=!_#`H6Bm{Uw?y_{t(Q-|+FUxv`E;oC5K9AZpHb4)R>?R_%8^vK7 zG#&-Gx1{WWJI!A`kzm5{cS~hHH{)c~-Z#(T0b@4J8Mc%VMH|&R`5yVB_D`PVP|#Ei zUreTV;)G_?ENEKMLbC z(AzIquRzFKV?v<&=7J=-20bReO=9Gfdq_nTS6~d-+Hq8_)-L|j@Z(*TmP;Z#4SV3+ zvm6BRCZn>;4=Rn8M2F2S8q?N>ASB;9><#lh4YTV;5nNaL_cM5BD`-q znOPrrg4}((4W=@?MCX^TGVYRc;ssK>@>0w0Nw-;9JV5YcJE|v-eFOz0m`40>Ayp7P z>U{v3pqd}E&kW<9;@_*1H>BBZ3j**10NqN&wrnx`O|$Iu|;CD$;-;;hK2h)WFle`nDMMG!yzk`Tsr&}j2BvV#9)bo4>x z6isPP{?|)HKOcx3EAv}q7{Y6@$F&z#Oy;kGR8**Jt>=dfTVn+TFr^UvEEppc^S5?& zLyZdA$t~I|rZ42|-{=L^j3(#kc;kF1+4`Q5ou)+9uNBCp$8nLpi0G&9?Y1rCcB3uS{hmg`O z)ukVIDIeI+3p7PYcCV1Mp39a>2P3HU9`E8GpOV%j=BsGV-)Z3QcsbmcD)MU+?7kJm z@7>G63>d@bmDse>{pE~s_G{ks=cnOA7XM%baWS-l)MQ#jzeos1oM35=6>}Arm^nvU z|5}SnX#9_zhXiA`owoOg;#TO3r+lNy@`{c3by(l>q%qD+FVPSl-3O04p7xQG4_opc zXyDhN1VL=p0|fDJ@(G8JU-0GyHOvrTFFFS>X`hQji1ks^HNAT}V2o33ArF zYChTJlDn5nBjjNQ@AIhAlDz`lGKv_q+LH{Ag?RK?rVw;h@EuQ{_!LFW?h>*?DL}}A z&i7|3X_iQ>=(E+*Du6Kjme_N6xfpcya5D!lh}-!-=cKgn3-q>lANa0iU($?i@30!g z?y~x26|?O#PmiLHH#0-K%I2AJwfW77%#9MfPnDAi3+!TBc5!M!+FhEs z7r^ZCbU4@#7F%Nr6oT6vf6_jC{+&;Lq+YR^Z8hXJ}Xm8 z^rtEN#rfYJAn9YnK7M(|fb{8y7nFU>{oAzo%A>ggnerp-_?14l8R>xI1j}^*6!Q(w z8(;==TtV*zE~3OqKqCvqQc-pl3yfwwts|&vt-RMUSMXYDS2~#XW6+M+bA#{PKVy)l zM@4w2>i!T~(+6?#jNn3y#FT zqaxZ(PuRAz1b+1&qnJK9qibaDB?<^J{y!8AJ34hdT&)o@67ETTD3fjg1CB&RNg+ zP*cO4wiXA%6LNZ#sRejfW=a$s?{g7lEhchTQ3^x_Mp>EY10^F0;ejU1w<6f8c6e2S zln6@2xK_TvwZ)XJA{GW80(F@R*I8Y6w|mqp3ta^9%)QNm*Nf0hXQSeBf_Illb=;=+4Q~uIJRA zu=MS@UDL5DOkNW$F#q*B;Z3Yke95b4$a^g!0{WqLgq_7$teV&TUL>)Qf#K_jG6zb` z4TDU%u{qnf^z{&Qhtb!}-x~YeJ}RMk1`hhWDVp~jt(s3W^k43cc#3tLG}i;ywWZ~b z!{(ZuPfFRS)|x`&PCf-bYch`QIxKR>>J8@z-piZtA9i6;PqX{s6JsR1EI!%czv*Be zA!rX8KzYkGH)7=Uy~B0(L$m$7sK*tES^FDI=VMx37cdoM(lvtsav;`K9rb!kc-C4R1iWiSOPeOFqAo;K@cLABr=3v+>z@SPmuRzhIoRVCvVa4mI_2YxUT z!)a76BYB}QVWjK^9vyY!*8C3fZ~MiCc{^@g`pDaCth0j<`cLYIi5?I3mq*u_OqV8V z#(M4Dx7BED#Pa!yZqD0xVadzgj?G--^NF?LuSY`l=*qNS?S=-n@r^AWrq$cC?p;i@ ziV+KZ{G^nAnAtznelnz%YIo^V_~wy0$sLdX8l2$Qr}IWK##l*5VbrYW^{M;Nno(7R ztH4HbRCT_m z=h2xhPb1Squu44^BDv6TU~{HG;kyUwm%52OP+drL@+m)u<*czat8(1S{pI`A1G~vu z>NG<|1C58bC-;6t`ux|}m}QpMib9Dwhmg<2of}iZR%8t7nI`R#`DKN+DvDd*ov(Z@ zeeFs@A`$L%N*Cujun4B0&)geRJ*iugvOXBur%A!=Y0aiVErc2=kvPkt<%zHINk-R3Ad-;Q8|aE@3z@my}c?WMS*%REvd%p6C{oy&X3iCb!c4*)^%gR^=Hi0F-~s+_j`( z9aRTLE+Jcqz6gtpDRF&LSx6w>Uozj)n++t<7?Jbvlg5nwWnX^VECnVPv9|FpbM5(z zp6P~6v1z`oTNRJIY*8J|l0|GHDzK@UI)5yzD8ftCTUrG(&c`}4jd1iJr9jqOkf)NL0Xb|dvsw)CEPpcEGom5&O+*X?ta?Mngn@WcE|MUS_G5(nikh*) zNog@B{OB7hHP5#cx- zz_)@pSKRRs{ko1b8S`}|wWE-vgT2&gGjSEl>iQGfZk!3B*1l81_DSHs zmnqv7TnwgY_jyHtK%>#Rd2n4+cLrO%k4G3D=A859#VdrRzw44ZV#GjMEdpW?k8 z^!hrwU}cq=YV^u$q^#m>DC`789d zq%s3nVSk0bfS|MIC11<-+MpAORihxJ4XeNF)cs zNbmrD#c`ZyZ8*ly5j~%F1dNun%1P=#hsb7Ks@D9f5lqxx=yE4|__JI+T+qB(&NFU7 zMY)j7JLnprE1m#m7KGQ`!|1Wd0hv7Ptp*j4TYKzNc|&O`6ig9Xn?GBEo3% z!al4G%v>N)b+k5YH@Ob2-m#3=42Zr}{zqN;Ctvm`oReeXF67}P22dx$|vn3+qjgEpDkYr*XeL&^zWX6tiCM9eH%V>|8&qEn$~ZC4sQDPvw4#6j zIROPwUKn^1B)rRvqvs3!OL zVyhp5E9?5?tkv5HBt=KLEB0(q(~vXSu@C(0;+mIZF3I4ZxVrr(tF~*R+Di4teNmje zb+=!}w980s`S$&<`Q@;?F%p_A7S9cv*wzdvO{jv}H`|0f>8L?S-8k^M_T_~%oBr3@ z2wa^OH##1UIUZ{fh7Q|FIA48JL|$tle^;bABZNC7^POQdDwt-{G8_87{#))o+b%0H zdecm*8mLhrmbxCu!AaS8!uaGQLmqZ)HT-r++WN z(llrIHrPG?_*OqhZslfHw)Yyzp)3yDPHpn0uX5&0S1VtOwW(sejYJYh;B@m>({8(N z)9%OWfS;YsrN}y8Ea+FlK6KmUR@&4ZASkaL@`Wj|N_@7SP4e`1TNH1m8%3Dkqv@Ff z$90lQ%V;<}Exb#6^Mt)MCkWw%eaBu-g|oPQP%f!@OIt}RM5?aXEYo-v+LnM@YHwV%tPx0VYNz0pNp^4TC7>QEv(V!LssKNB??^EJP z<^c7S6-*w~_Zy+(RODHkglAG4fg&zn*>@19-O`vHw(ZyUsMM1=84<-%nz9z2=$Bp% zvGd2~uz5*~QF42BgG=zSFlbv+Du=2^66LyoXx`UqI0+>#$|zsj>&PF3gzjg0Y>Q>= zL&{{$r4b8)SW(xEI1*8ob@+F&n|+$+J6|Bb1tFMzigpdsfW#-OH_~x}o~;m~A0vU( z)n7>j+8Ad0qV8l%=D$bmKDH&U*9{fX4@aqzg5?i19E`g=xikp{>c$;>vJ$}AR-rp|hVZc4$bjNFM zF9PrL3-hX8sN5GZH4(W1=cH&kQoQ04ETGa(n&qA>|GvGH%}ZM63S9G2?lJK#HGGgO zMBjs?sKLwGha*Lb8_B`_Z*He?>1rsAVEk%ymhW%YD#HTWi$KLi3iLn#ir^gC5q>@} z`m~pu?rHj+A&grkg=jZU*nN<#InhyzY75iISnZ%GYfBcjpwqk_l}lR2T{}Gur8}ja zl>}cqaN8N0&SAzPn+lQ=dnqkmS~L#x`7>DjePb5(>Bj+6-jhLu!S>FEm90xI{2<4% zdR@Dd=OVSYTR*6B3%*7r`lRYo?Gt17mR@p)aQAU;to`Y-n|7tKf8t?Pz2)Y%lRMUH z2#LT#^rMa>{QWv0kO1lK8#*7`mi)WAm}eA>fJGHD(5~lxB#cb$d~&}K@UVhv50wbr z>mf_dGA=vT6O5F&<`p&IS6oT^YSlUTHc-U=X_7Uca7|QQlzk;pYb!Fq)RXxcGnoK5 z2t>FL5{vQSocxnVL9F~f;D7hg-c#H$2Wnmumrby$*lTed*!z)RtUB~3LeNv)g_fHt zKwL;D$fRJtV#3~t^8c8au;_rEgqi1K7}gESul(7K6jiglSO-3M&$GM2Wn0xZSITtEa+#{XyTUCLyYQC*Q&y1vqqPK!-UcM zLWJ{S3B9{{{PUljAJjymBmsnz2I0p|b7DxpJUvrL7k1Z6>lrz&9=Ht{E470t_>jna zLS97&sXs&&zUe^}hZQ{YD*cPInZd_S*cdPL)2A%5(kHKe6vHSt?}syorrZ->_6mIF z81uKsyXJ1(bLeCyF#O+`xB4Xs4N zvz$J_TKnWH5t;#87HPFbqgXF)p8YuC5^7{7)YVF$Cj=Z=jS%M(fve9F!X@$ZXYzVz z%*c4m`R7-p=7|;y5*a0UCAe|;Oyn65XtFPGtUi7aP4iCicl;LiWDaVfe zrz=#2{3F@lx9#2p%UkFq6PZsGCC3O8VpeD6@&X>PY831>d=DL&?|6pmRzRGfPQ6tC z;zZBYRUzM26pcm^KYrNX+_s;Eyp-mj+*Sj-Z{FdxuSDg=P6PiTv%BAbi0Dti6UNlo zY|r|BkX%ae@%fpuv1)XN6fZdjorcm))p1G~nj9b>QUt}kN0@uOg{LrneYWsg0-%s0 zolp@ooa$#k-Z<<8X5xMu^1n>oN%VQpCjoN!=PwCcPTXDtrK{3io!UT?rT*R>_ z113o4b6V&PrOGiR`J{e z?mSra`RyaQe_`y_aFGk)`A>6u5Wcs5L^zU5dT0vwSy3?UCgjY`-o2dUwVt&J+|2iq zT)Zzv;FlNAvfYeiQ|}69zbNVvLo00Z`qgpY$N=Zz`;@0r#OM8^951dDs0hW@0i^72 zO{g{-6(b|j%o%%A^Of;9*@n6XUqZj!8;nO`=j^Tp7{_Ji2(6XOy2F4DnANp**6-wD zensXe*;>l}u;smyTaN)>p8uHz$#jl)$~taT8xMb`=>&s*ZX`v((oF`Qs!n!H;kQG8 z9U>{g7rJHKOsP$e)o$`-!QN%D6sH8_ApP?bCy%4w3C(*`eT8)W);?v89+O@kUQ+_i zuXVlWQsB2pTFS!1u`iauHHzt#sPs>tCNMFjy}5`E8_iN7V(cW0evd~PJ#96WMk{+G zy5DOV-C7I|dZEVkz)8%Q%)L3-U{ftonT^oNx9tlua8!f(yU zic3rV+Ej$EY11ILdMz*p#1JsH=r&M5bg%7jS+_U${us@Q_3==l8=2{T9u*z53KXdv zDtr@hE-s_)8_cw7SzYvA%KRah96J|-tcGZT$PsF{p!1)!!K0Q4R*`;wXA;I#t?`5^ zLAY<3XeC_wNjsGF_R3_+Fr`D_i0{?|PG8EZ1CjL;Jzav_PE1<)_=Q1W1EQn}v&M!q z7DjJG9mGR>@D1p>>$c^F(J0Af`Oc@8xZgcL56g{jelb8Kko%3G=d+|VC;&rPCgSD-JMIDe30sdq8$53NTjD?Uo^91;%;hC?^>W~rpJBCJ zaVe%L(2w0A!JKRf&-e%bI~4^-;6C_2OePs@=0+-$*^e<3Kqg)@FSSs)(pp*fYPiMg z%9Z4yAUbQuD!qV>ETQhJXNGdXh&WjLDO-qLU~HyDX=$AuliL8bQHo16FrGQ$?$$k;VJBvT35@ddf*5#kyH1A-8jdZ`+VMCeGuD9{YR>F zhTj#&8DikuM*VR*?!dJk*Q~YJjC8~8vP%~`e&eYgCGCrAl@&L#SVz*JZL!tGENG14 zVw7#%^NxU;nDC}biwt=5~hAYW1iu`ytn-y5a!(E=4zq>dz>!Y{fq)+in4aPD&4ng^KY=UtB+I{4I5$ zqk*J8tIrDB^7ZUT#E0q@pv0G1ibP%Xs?z4tj4~9F5W&-UauSOJz~y{l&5=ue4;x?wBIDhs0V5C+oGO zp(>-3TuwOJ4o2o?B16r}jM0h%Q1?PC!tZSvrA=>dRnmm?8!%^kmn(Wom)kyGGx9kdNyFX zzD&Xj_G(+#8fNXa>`+xlV61^dB+QJWK8rEbp}Ni513S)nezXE)BWzTvb4 z%1zzKyS^{~AF8f0D#~zM&(IyxjUb&OA>E+T64G7LokO<>NOwp#(%oIsA>Bw1-EcoV z=dN|{FW2%H^TvMne(D=7*x)bO6<=o7t+Ck6UOGU1kK5sTO)W<>vgh>i+5ztpX$>b1 z>1yJuAFC9)9nyqjpaPRp`F%7_2VEh~%EZz3#-%Hoqf`=C@gORD>({|%tIk59{j$=l z>Hv*O6asvQm;U&o+8qZ?SxXBM16~w>0efEHNJ$|)aZJ22mFYkCGql{9sZ1r_JUz|@ zMlB#Ax_EcC1(cKal`zX^<|;uky5nwaV)_XXWIkPQU@zYSe}OL+#UBp(dVHh={lsa> z+6y2B@o_Nr-i{pZ(7bCLi}8!JPQr@^dQ242SAVA~Y{d$tF}QqCohiyY`Enp-38q{y zH-zVR>A_=J$*`HG&2{B(_Xy+>p0u___>G!pYQO3VOy5a%Lm1OsHZ{HwAbkh5xjA&S zR;afGJS2GOD6;>Vo_J)yDL?>2Dz{ZR&z>e4o~*jNiVQHZh|l6loQ!Ese3o1)Vol<; zu}@^*sHTpw`JR+Zrx31s{E>{ZIbw_Ym>7~kQM0?{qBvIJjLnSkf>25!x--K;2d96W zy>R`eP8xYJsFC=3wrVTUS$w{j6Go8~b$2R5F@lNfNt2UqAbD;!uc(q~%~A3*Jl4K5 zyfzk4&bcj;4T!>{7^-f0{JthOPkA{i4J3pbCXfjL5Yha8gBRJSuv=8rtFz*quM5cR z-bZ)=(3cc{4&PkWSC4`Gq`Js>m_Q3XVV@X-g);9S5~>g=mQ$8WEghO2(l&*H_wu+C zmb0D8Xo%9z1zItF)!fy1{s;N!3aH-^-|0IA+SlwdcMg{@b$0=8%S9+?izJ7Z%#sYg zMKuu06dL7Lac;)D94y+W{AGrDH876%h3zI@h<^S77SRt(Ez$lZ-Qq=8CF)Ev=V`7u!_2QnBV z{VM{q@qjcv*sG}68BKWQeARm*9|DTt|I@lqBrFe&*x^X1v-g*4D$5+H8)bN#Sgumv zil5r)i9O-Ct|`XD+K5wXbXJ5ETnoZzS&P~>xGFFE>yoa?~tEi zz%U1OIB8K18#xVk|J+J$f1c#4b87zLx{TTpa&KHlm?jMi?KB%%EqG#=6{fyy^nd&J z6{q*-Qy-g$AX9W%`0PE3vD4i!qu}nTn!U+`;LV~DpgyR+>rgfW7X@Y^&Huc691t~< z2u%rJ9g62YZ!T|Jg`gTib##1GM$ z=Z}{ZGf0TJioLz>?dGBPHqPx8^%miEhVvklsnVSI-e8gM z>Rl8rvqFX_s)Tco3?8vkQy?-*8eFEZ&u@oD&FYLkV`nlR`v?1eTE}d}j1J!X#2-ru z2=O=-APN|&8n;Uw$BkXQwE&dk`iE{OXh_9(UsMjA9z`fK&yqJmbIxZugjF3r5l&n$ zk!t62T8DxRl96b4>>#V??R z;Gt3>-+A4+ZRW@D?qMU&tMIjW&9+?(z;h9S+wA^|JGUzP8V~Z9v2Le?(bA2Ni;7gh zuG;dzd>bI{xZ!?%BcgGqA4jG8%w7H{T|-G1eHAri%>fCJw$l8B{5rc~c8=PJA~f>fBZ5&{pOo!0eb;q{YV z0`dsvxkLZX^|Vd5!&b9=D_6Fou$zD3d}w4DZN2#g@Nk-j)3un61i*J7;v5)-ToXGI z-Ts;2=45v`Z!G&TPv}$gINYa=gqk%fv&vq8+dThe?9r)Q_gaLh(x7t4uj&wo~Y`>Y0+>j8ybDb)UfH1Pij3a>P^Q9 z(c(cC-mNxaKY1@uG2hcPgFBaqDKR;}eo`$fN!Q}9Jql?Vw!UY$M>?*J9b5Ogvq?44 z33=-A5IZJO`=EX>$gsdgvf$uxvdyXMJ2pKQ>lgy!MKGmMUc07^IoQ{3nKm&hYB^NU1fcEIHF3Uf~vb75;6GIKFnKACcTtV;@eo z90~C`iBlp55U-ePVelW}t#upYQ@B(hQ|zk2uD+uRAG&@&fymgG+JNItcco9y%c=8>kW1QLv*J5Lhrm&?k@;>##!*Hdu4|oI{UTu|1cL{2O;Kw&@`|F99+! zVrs&OU4#|uzBswQ&6Z@f>QWB>U1x0kJLz9|C%Sg-udnT|bC%|uV{HHdVbt!EeLq4% zV)HjY?jOH(e2-|0vR*`PrU+D*ZGUJv&EG7W8jE({@BaySd_THpyY7dv69MV0LjJ}D zPAe@rCZ2BFa-8XGhKyPYeFnyj^wW`nJZ;`J;%ZMabgcAO?bwykR%!_xWr(93A_aKb z=XRrqm6LduYL^8xdcA!;{u7U~SRdQ+cfc02Ti(B*{MRuLKU^CrgiZ8zO(l*s=@HURuK3b{HBlNtR*>(AIh@NugX(7dG=`F%pYByG+a zYiXUH|N3e!O*ebPqmVkIy?dbdwe@ZKF(xpIk)%uc82Z{)!rY7_x~ziF26w6_#u52{ zBDz>hPrZ&+?oljA?^lc%^kx;C>E^0WL*I-0kAJ z@%*~rQw3j$a(y2?0;1qn3~_BB1b@k=Yiq4vK4+ifWEd@PD=*w8VV+YyZwe|ej^7~w z{@5Nd;q0Ni(^S6-F?EZ-ub7ebBVg>1G{1BiN_`f(+YEGMB9wZG=ZUX6 z=!EN)$qztDk?u-p9UiamX9z?kYmmzZqRA-iEp)YPO7WziwPFZn?Rpzh!dp5uK{=UK z6zCnhb1CR!xt=FKmt;Qs8M0mf-Ot7CC?E;f#0M^{fNuM?j!o)WXTC4VNi4=%H&ARZ z5j<0_GP@?t8ooyye_rfj(OCx8wIK9667acJ*!imN)2%Vj_IIKpL~8*NcO+%UQ^y(l z1caOZu^%9$Cg`0XKtkpbuN}gziW!gsPP=Ax3&bM%>K%7e#+h*#mf%Ah6iBg=ItKxj z{{$Hzc9s3Tj`c-uKHa}hAHYCqITdw6S{^*F&=M<_BRf)w1vxeE3dh!+SX~->oeKtP z)FoCvm#6$Zt#>?Uyt?f_3DX+MX|goeRphW?BY?TV^`9uBhX0U2`ca(V4ayt;w6%LQ zEb&B8AV5jUf}9r?qv{T9;Wn_ZgYO?d07^yLFOQiG;y-A&ur-BmcDf@5o$FWj3gHX1 z{@%eu2UjO5gtfX%F+BRXO|j#Ugj~5DBA#0HZ0n{wmvXuXXo4x;3`9pxX0>U;IMXt zbjZZsa}(4zlQRjPa+avqr(3ov;(ZniV4HTMYE-L~=T|FQ=@n746ApAHoE3BEy31D& z3PC$}YKZPc2uo?Pki2_+;;`yH3rqw+&hvw=D`#aT{C;5jiYm; zcjGi`-uRK4jSYkScT``iRT8)e51eFJKsxvp3^O&+Om1T=aRTqw`1Q2eYIm0@!gEV_ zjbJ3UOHLl77gdxxAJW~lNM)Jrm1J2UpB~)GQ<#&-uY&vu-&$tc$ZK)HsEX|lbT#-)NE$ONopSXE< zqthu?{Ev#p^pxalNzUOWosclbNa=r{kIDx~#RrMKs&ahc>^VLL;N>UzBlV6@b@%l4B0n`4>|8#GRzk3Mgcyf~Q2k1kw5#5@d^0 zPw3UL946q}D~Ua`SW0Nxhnb-t$zNwlma5&14o~t8uQB=XlGI!^7UQpH=oFezjx%yQ zd{T>^4+%u!%a$ltm3na}v-jSX=u-R7nREWU~ukKc9(74u9GJg zcr%#(>FuoJA-) zyj$9x2giUWW3KhO$Ck?{dIN#Y#a3%L%ek~I%FgGSfkfNOCr7t1?lXvDHb1QGDrWEh z)qgM~32hy=;GBS}y4XI`6>Y{+7$oFt;AOeW$YZI$*GVeZO5 zL;>f9Tht*%RzMIE-TRT#{KBFem0!t$F8UZD2<8S$)f#CoSOtd`3F)}f?ocK{hR=8G z^LjfDwmYKlk{(@D^$f-Lw*eucce;-vg%=ZYq!Xsqi3OTs&ag|cQ8RBWQT5+Wo}3z5 z;4Qu(z^f}uF@yAM5AprbYGXb7SHj@({{EE$$I$SgOgJl2{&nyd0kO?7*%;wJ#C7T= zr=_*s>T-``y{$9fyH~$zfxqqIss5?)bRR7)^`=o#X>RMuC_0ME=T{@Lq8z+bs{pER zU_T#5Rno0{GTYulaO{;kb%vRi8$PgN?$~^nV1blBle;Pb=#ZV- ze1>Pu2a4Co3Xm*pi@*(%kYu1P{T|A z@EHb@G|;-T#OnqNLVFl6P&+{EK)k}V{KAr}fFcWXc1EzlB^ge_uU6cx9vFhjWqRS4 zjwq28RDok)8s@;;*xK;+?UC|<=`B9>^M}R6?_@TYFg436#Dm@o01D+S7UbfLgO7)$ zeDBJK2@f?eBWP}rxv{B8+=7D|7+yc_mJq^Z9{#CRDlsUiiwgQuX2yDT5HB?TmvFwP zZFu=?COM(dBx(H0edKrhouE_|l?khF3cI~qbL`CScRu<0a{@Cj6IR8v{iarJq&3HE z()bcwN{!D9V!M1Oa60m9xsVITs6W9^7tpAi;JM2>hjbsFKPM@3Cn06)xQwBQKKjL| z5%?0GXgo!t1WP+I@<(jmyLi^m;}*sJ?Y&>8@_1~QZzebw^RwM2#1T?kB5s16at9SM z9$dC4wFUyH|CYX8>I;!`)`(R=)N}*iV960Z6}K*)o|`BWEB|ev&{Cog_YUuDr7C z{SfzP2NG(ZvvQ-YI1!|m@invfHeDODB>xEv*Zj05Q< z1G-ksU;(qYgYkc;X~+4Xp9)&HOgMZ8X=%N5aYXVK#xP9JZ1`ne#3U;|FSf-Bo2ix) zQ7X_b>n;^j;7sHzOKABT7Z1WhCTb~MI+u9U;E`m_+ST7mJAEZ}#zB#R55WPXV#EQ| zyaRc6M$=pcuz=jekL)9xDC-tCHT+E);JO1*+<8=*DmBVbv%x|Z)qZnPoh&d0DgF4& zpJ#v;T}+D&za*prhfjxHo#PglH5?{SO&qo8xL}&_TG@0l_MmOf)jq;Y;z$Bz_uj%% z03Kyykb-%nP5tyWVyfCHeHn?Ma2a$jn8fMg3k&&lu)(*6nC2lx{E+z)31qMS<$pXIcHt(bp&!Jo9M`Sg4WbMG6vFB&!r zqapy|ye~89)R^5H7FTj6UrevS7_d9qeh&^OaW@(G0HP3jPbu7V03h)4rnP*&3I&(1 zVIfe8_qJQ-hK1N<$ZO%DR!+)+xOVr7fCJ*SLF{22u=>hd4s;RbWCO2#rn+z25d3Bs zdMTJEF-~rS$sX33x)n4FBPLzMcdNApphPi?kdJx5N4y$LIs(Iq?>6|j1yeDTZ0_W7 zx8DaZSS1|rZU-Pi2aSThlW(My%%cUFrcXVna+%Bwdeft~NiNaV#0tNEOP=&+-@hOD z6L>r7U)06J)MS8RWl)yeXFA*;uTKdOpOD}9RS1&TXk%W#K>}q8?0hg0CiNXV;Uejy z`0c5H2t}qLO2%K`34nppY%Iv+JAd+W+FcV_4^ z)4<)PAxI~h8uL2wn&&|88beDE=7tLK2CD{(HqMHolOrGes!d>H`hfutgV_ChoW zz1V*4O_eau@;m<9K}&vPR&kOKx;rw3^+u!8hmW0ORF)ralF9nQmpR#!YuDCk~5onA|Uq(=>>}MacWlb?e|y zK(djXPegx#x`qSh_@q)aN*z>d@W)}7=N^|xLf@-V7unu|yyU;uH|znJ&CZZ=r&4H7S={7b0+WMUv_cw9c zfAh}k!GcyKoL@N7m|Ep{C5i$6G12{zXQk2T65FnBbSbzsDdu6%Dem`g2V6kCbT7+pb>n1KXZs+8_3rT(i3W`2vRi)__A)v)>YHBwy)0xT`dRPnN zGYfn!OFb^_;zC8$*!jNu^f+gyoD<&SKD<1mp3Z8UVw5pi0l!%59N``*JHZj}{v!rE zfg{c8#=Mw?kM-}W*N_zIDmD_Bq{-q;CSYvv2z5uM$vvJg((ZRG_S)2FvM5d|gH7}9 zYnBfvDQug>zZ4z*zI9e!;<_<>eQzm5+Aoyx&?HF;wb|#q!;y)zRT3o&ppP;h4fbqp zxyCqN=*&O6&M1bDus3w1T8R4&qA-6IRhua5DZFyx;3+zIvYpDeYNc*UCSR;lYLUa5 z;M!Izc420@+tMvhe*b4u@$Hk%H*SlXJkd<~f5$D81Rc=bN%(|%1c&C&&-5Ns;X8%4 z<-NnRz9o)|8KQd*RS7>04UAg81U$Te!lRomhlr50%;t6rw$AL{L#bC_h`&=;cS#=j z=Ez1lRGq1N8q9V*192##mHo?}jO`}~yvG1=gecbo2&L=3ZiksEgWKNfkk`Y{br@Hn zWE$_T<#V+=dfPlZ2`!F-zi`3BuLTs{eE)KR>dO2b1()GBhuQGp)B7h>@vZ(x{&r5` zt)#*}*tGyPII8u=yqdjtRTo68MqjpuhDWOzn=CLJY6-Ru7FKQV!KH57nxf<`(?*W> zitzBvvx8QENl|?iqvEXhBcpfOz*GE$o>uCs2F4blW*DxAT* z;=f^dehss>`(IyEyE2_em}GouQycC8Lkth!8`{9({P{o9mEvY>I$sh;J@s5r>Eije z2Q1-gwNb$AApvm^4dZ#?%)_!L;Mo>fIDjjw4b}rp)3Yp)=kb1 z+dN;6`z^_jad#qtfzX>NF_|il>CaF)N*YY!kZ4ufaYVlM_2T%~da0=pz3ZkIR})6* z;K$wZdAWEUbLila+u)|jO3kxzH(eMC)V-0yc`MZO{WW76UpsrlDoaspjU7HE13Yv+ zIZfzCLp}^-I3L5HM3^u_#-Jbz1R-pgf?GKHxd9JlNj(e3mvAAWz<0o`JG2IE+BoAJ zHC(0)30P-gt@<{*N3e|)HL% zR?58g#iaZcn@F3S-vDS6=l9^MNPh>ah9Zn4CdxwOEUDh?4@e)X2+p6myGZ9f5B4G( zWHTX@o+pP`zIYSppn~)#q~ExgA^{=GS`-3pJutvIk<@K_jDv;Vs{i5CiKDqw;yJye z07KxQx0Lg_ox8Bug52OTFJA&a7F!*hdG*rE5z9I`RG1sq&rC7AF%2X(iuyZ@WAS!! z_iYhi;4RLI4wjRr(;F(xkpa#pmCi4in)0PAY9{yR%{u7-UN#X0iBgJb(82S%R)Dg!$)VDJ1Ia>;wUmzIsKg@m-Uj!0F1x8()PTd8>0^YB2}i_@INI zvuwmdhb=!Y|5xW)RD4glr`rRqzcz1v>T5-k{bfA^ISzIInWI_#7j8k?Rd6A2S-Y;- zr0RAqY*XrD>8OOD>G-TG5m{Ck+NB!H>hSCEokAI=@)CT`eQ=sFxTcF$1&~!1)}Q;L z(YeLtanw2diTcsdV7@eL_1MJ#P+vn%HQIK(_Ge$`feBGMWEylVC2-Ep$tPP( za#?xT!{`2hq%{OqR28zLc0=;$I6eR7x>{8O?-(t;*lv~Jo`*@>3?O2LD|8%X2yJHP z?c7=39~XNHMNcNAoJ8$2A%Pljq%=l;xQz2i_{oZ`Y#wGN3Qxv>0l|g>pU#@z{m|xi zclCaflfbnk6=}{HhYjXN{WBQiHrGAJ*QMIHdO35E%gQ~`wt$VkpINPR!@(yiV5N!>3Yld)kgs-FnARk zqF-DD%#@9K!!V|mi)kyRe}CKpF8;$!h5#}izjYasPU`HBfIO#iupx2uOT`IV1?TwJ z$UPXbznoU$5dPUH^oYHkY^VPMn{!13?bcOGGGyq`|_>#h$*XOA115N?*`;ultZr5xy*RuPi_>gFmk z3RMdFoK9!RsP6mQ^5E&Y=_kUkjZ@r=(XoNzvA`^-*RBaPo~-?0`44cQ zil_J9ajQN(=BQw-wP7~LI&Egl$ff+*Oo&2_`vd*DEBN{O;phuBmEDy9d_<1TI<~b> zn8S0J9%l7FZ#^$tC#*zNEZw)TGg8B}&@(3>p5gF@?VgC1Fwtz(RN|}~2I-7Q{u_`n z00$MEwa4Ngd+sd2r1c(mvpYMQ^5^Ge12Q5C3^v6v9Php-R};4>3oPfVyiy8QF8J7= zE@K$|qxO0XbQH;ezP9??XS?v6nmtNo1H!gICi`KMw+f4#I8_XE{y>B4e&>mp15RIcF(z zy8WU4C9>qfN7MygPoUSKiuj};V)x_*2ruaqKz<5SNPifGYQa;OtN(z(a=aJpN#(Zi zA$%S*lAgDH(1N7dcIC;(2Ak~YBY+~9|2S&N*3Ni#^G3ldKu3M0sJJo5puUv5H>7xu zp{2a#rW&^bRL&_i>uAyIT1Y&MAi^J$dI^I`wmQj7nMWkyC&W9(zkYofea!4iw9`F? z9Y5kHnDrG<>vM}DTd+*R>i)vcth2_XPVi>TC^pf!_FaL3&J7vVb&ElWuIuFHjH!yG zJ&4J12mOGI2mo!8H|h_K8o#@O{7W8(eZK6yGd3i;S$cKwUD2|_eAa5gea9zdIEh*u z8K!+N?Y4r)jZ#>6n>xog(~`{{?jMrF=H3nxV)Jq@3s{{81XRRekEM}e@kj2KD}o9S zo0czcxrO_jKf*%1v3@L2qP&55u`U6hQ^rxByzaJTiNf^tTu<^|pyXn2_D7CoUC(>E zY@$IUMr?nm2`5{Bmh7TJi5&fju2pQIbM*U7$1z)@>2c>W|93KN->YJTHw%q-3sh*D z<>MV)aKb9Dn(IPCSyE3#9SIjQ=UKkER;!{5f%pJrnIFHnkl9`_AaIc)lC8S7TGhAE z(Ed_dx-LLuYSATuZf&(K>gnQD*~dxL4d|~M#^rnA_*J@S5vV%5GM51HM?PwriBV@z z=mw~#HP_r^P=>;L+CJuw9jHz5p*vgZ&0%iIgv&dV!M+y=9PZV8M=gc-LSuwM0S+>% zKZ(rp@NvoYckaooFTR+XG9(0YINj_~yl1N&`W^`}3`$#XXuih9c;Wbbj=8&Q3#0RB zQvB-h*>`I>y&??Gut9h=@vIEuNShA8^PGNJ!)y7h@zy72pxqQ|((Itig!K%5K*?M;E57E+@8_%G@R zbq)3wOVDEjRn98T=}ZC6+820!G_tW5Y@RAWYnpOxp2&``c&)X#qDH-|OSHFAFijXA zhud_lW`F#qrQBSY_rU{@fI&6_^UALiPUqtJb(opy>~qpJoq!#NH-!LPWA%8)T&6+D z$->Q&-0AgE$4(*Z>SxBPRsl;1An7~6fYemwUXheI0_+Ukli)jtqMv_g`pRLq?9eF} z8Es}a<2u^81BBT*lehSqt`rHB<|Vt19~Z}FYy3tUo&fU%=?E)hasI$tU>PMtaeU>& zgu(j$9B><9Vpx1~7J#j+xq1#YbbSS71_=hw$!eER2w(jYd$fB%s!=4q zt(r%-;Fwj>s#$8Sz%`-6>lipHNI>kLEe#9~4rS*mbuLCqYki(DH-@6l7P0hp$cjK7 z&jww`?$-R>Pi`-?Of-&0pOxm=h{KyuV3k6yG()h%Sxj|+#_Dh3^7t+D99IyFmlW|= zk_b2W8)h=Tv<{!#RAt8{O+cc37+v>hRR)5>>2!U>tlzV|=|XWSLxz5s2prYNF9b_Zg>#6p0vs^o^4hX-2z_g1r z?H(tv*A@zUg-Sqs=m7u#XUnlkW49_!2N~Tb2V`Iu>|mSz286TylXmSgB#j6^_X!D1 zheHkjZv7=kmt>OJ(Kk%{i0g}K>}yKSc_HBddxPJ8j-tim6H{nI{%A*N%Z+bB3mlE1 ze%blOFyT%kveP$i0za{PBLREUag8(V+a;|mV$q)><6DB!pf-SD9x3KJFfcGFTt!&o zj@ZCwt&*WyLW9Rv7Yx$eROdV0>v_3Dw-V+S!Sr@TN-wEQ3>{x`w$GP3PukHaP;S)b zyS#e$Vp#7^7kE#8<;5as7E_}bESGmPTTF%O)&Z7m89|VeV1bWKLMOqWs~J?ci@N*y z+WLgIk8@!tb_;x)GcJeyWF(T&_7cnaY;xSgS3dO-5l6an0t7@5TnpiQzGlEO8cb~u zHz%qh{T?$h7APzF7*qr>p%S^XG&qRFBDqWWXKwOI=lJvvA?t1~@KJy19~uUo7csTW z?_xUUb#2u;uMCuP1Yq^O%9J#;1few}0q9#hEVn>yn^Z?r@CQLVb02;qW*YOl<$k&m z)8=*##V577-Ismw(a~~=fgy|Ta5sRHG}T#>c7+x(Td%+WQ3jWAYDr1et3n_(5g)Z$o769 z65Ea<%2rE0r7smE)40JeSX`Z{r~%_qf+?636AhL88x#POapB65!sZ=uiOTkih%0Q3{`jpldk2hxo3+eroA7oeU+ky#gQuPITQpOM4)Dx}~0Tk;*SI+q1|G;tAX3lt@&7JB-0 z{|@HDJ!6Po0)qYYKG_A`0n#4uOXmRyxSHf2zTe{y+vHF}=3D>lcx$=8hiBhzy)7^9 zV*x<&6zOoU!3l}^BAv^epZEHIA1;0h>gZI^HUSgw>9x-W#v;3_FD9OD>DQ=8Mp%er z$TdnThC~022vum9@;9}Fw1vxNflv@dhP{5QL)}3A{+oW}wW$fDh2-(WST1lX_8w!f=?d?f>V#8~)w9kMHDZyKJSp~Of7}414EEtGZqR+rii^*kuLHUe` z>N4>mRc#q>x>#tfl-1b3UuLzZP=*5^lkk!y38>pXDF|4P9|Cyu+})1=?)liUD3hY8 z+{*E*zkU?+T1ON$aY3F`pf(^r%fzT@)*!_DhR+xWYF5Cfttw2+2hIC$?tzu{fen6FW}irNymoVYlGyTufU>*E{eQ}CWe!U%sQ?O`+)4ln)a&w(;nhl3 zBtF9a&Qudu(l+fL+$``W{Wjau4c5}xM29a!fOvjdM58$&XC&zmgVh`&;r4kq{ zxv#nt59V_TQZ@IBC?WuBUNvA7tDJ5G(k%`<@mqmwJ>m6ITtJ_%%DhU-qCSAyfGTF1 zDNADb6*X%ah!4>iN|T>78!$#V9G?kOOK`I8%VsVlhIB8eRwrWtZ#?KTb&&|y5MRVo zAke*2RQY`fqoVVpR6{}YzlnvBaNUb>+YqB{N>c$&wF0BdWOsuiaH=y(0oE)YT|Fnf z=b(#Ym9_Z=9b5e%hmH-;%JTB-vjGZk6rDnD+qCMjHZY!RL;{{nK}{UpTnqN(9vHNT5Ghy>-@;|WWD+_mMt%v0mG&|#nP>ZdKJ z`)1Dws9M8tcwy$yPwDKK4SHhNP6MTI`GKyhKeBGx0s7KqC;)Jl(A0r_<`zJ>7~i|v zR3n4^Cv-e5iL~5HQU4v~QeKfG;3)s=ErdaB=cI%wyuV;yvh%nZ#m);y*Dy7%1m=?F zoUpa+E7kh_4(mM0Ct>i$XSMojr@WUcqc4-12FKStuWJjey{H;%OfC3`^Mlhp-%Lay~Rz{3y z+zRXL&xZ3$KdO82{(g)of!12{$dg6a=*N8+mk-vd=YhikE$SVcw;oHv{Q}jQqQEwG z7Q&hfFyso%M5)p=_$$J`{aF#Cdhjdl);6?wQT_Z)ap%OS1UQoccuwDm7Bz|}14rc; z4%)dab2?NjHpv0FjhXe<7r*oA>P(x*Q@Kqq0v^+v3%rQ1@?XKcXHz!ZE#l}h&F@7O zn*cRipo-zIXgo>VU;5XLBY*^kU!wMnh%1K~x*HGC28dQpNx z#dOjeU+;JI;A?sSb@Ch8$~iiJhbR{>UkvCb&6hL@0g!$Zx!hI6T3r)lRsw>%u|5wX z&Q3`>JG8m1tMr2uvBUZG%p~Q&6-of2J=j35r~)hkRF*RJUm(-$ovnvwO!E~X-dk;` z?FOE86+8#=6*C+~V4-tSabt3esgQW@HDr7h-;)ZQe)k_Kj0>xg`xNXwMtv8bYfeZ( z5&(&Ez}E-x0>rd8yl1-ozdTc4kPJ_?7XCCc{)?Q=OCTHY?0U-N@Ehru^U+X$X1$+= z*vW#hBa3YwuNS+QVIDlp*{&NKR?$lRk#_(~4)ICdgXFP3&ywzMw~F@|L+f1y)ly$q z#Z^gM(LcgYXxBVoAN`FqlYj1&axOP<*UKT#Xr1Y}*6v3nz?i4!t9nM`j`zqE5Dm0MJd5V=^jJ{A*X20e8F@8@=^K+Eb$v7x3mF?BxFP zYZTnMIh6(S34GZyma^JHVLnQ{B&h;G^M|_UW@{^}>n6>8uy!#3yzbOi%&~CQJdOCX zbHJSwz+$821U;96ISm69UYn2=38->3Gr4}PM}v2FFNXcqU6_5Ao#*+9Uvb}yKZD`M~L z{VM%@Iev%$qPcqZCu_Cb3omBtri<4H8?N=IIbTVWNX=k<#g>uQN|Z8BGq^gq*^&o$ zqCAuqjqeRm#qY*(c_fD^CL)hRk=#N9>F8Q4u?OX6HxeqsA66>3D;udZ>-_>YnvRh= zDkS3j(K1V_g7tDa;Ofy7oJfw5TBttY8h>0)0|sYu&%)XawkG=$lgh2I1%h-O_|GZ8 zJisst-WSezX-(+>BKVe&o7fqJ2wjhGm?w~_C*twns@jxhMTWu*O1`XWCWwOm`p*)w z)nHG!NQUevaha~ZNdr;g2lZ0cbk6ZQ^;dK0kuYoB&ddIjdqR!ch|qKa??BjK7Q!0g zv=~+@wtWQnwQhB9AS~uy0uts`{}ov*zxgU}wEsId=7(}EbdS~XxLAsJuY47jFxxXOJ-)9kc)3eNZ@cYWFtll$a=tK@ zc}oY#9ThN=;mvBR*Q5B{ZM(hK1s>v`U?DF6>nQ2PcRuEBI!5!qaq^F+{90XHQL6gm zMQ!EUURUPENGCUakF>;^X-#cwt7cX__fl#=bnbja9^<}^Jxll%&*lPHl@bLm6j(j5 zAp$zh&VN@AF_@1bO+WJH0xEe}HKJkk+tumc_`K1DupdbO1M=dyZvaDp3DM*wAVi7~ zTk=b*-O~dv_v3b*CKT+9T|*_^b}+gK{i)Gz_iY{Vcx=^&Yj_4tcjzTd&T>kHW8_p{ zH^}K~WYy|u$(69Lh;~W2vGZMUSeX{Cjy)Ux!MW50cTKKD@_RAyzkd14=topHMls63 zJYNO)f5w>o2hU2-hm&@xrtGIV0RD9&uCrZbb)g>kA6Q53^@ z)lI3_0gm#Q!;W2@=b~AH!)5N;Xdc?aiprI@G#2c&1e1(KdnKQ1j0W4I;A9;Ile-UD z_tp~XGq8o<0<6nea@6}4DB2|m8Yw~1;{GMm`*o3!lT7Mh_50#9O zm!ScH;{h|r0`rx_z?fPIq>O2mcdOJdr=Dv+LNsmePTt@POk9ea{QtaI(OB1pNw-Gb zuuyV6?uko2y&&%NCezQmZG>n`jve()X-?-~D~@;@nHjZmUYD$7Coaj2oc+5xrnv>d zVK9SoFIR`8gFs;)qL#*>u;Gjm=*df{g$0oGx&MI)^aS?|{dgwjsYly$vri7uz4HoyBtPgM{;YgcQK9 zQ)oPG#`rbD-pE8xemf4&0D^AAaNY-eBr> zBK{fUkadf4Xtzz$FWyPa)=96Z1$cyC^$TAJRGIq`Q(WG4TmwPCm4N!cH`;5px?7vy z?V7+6$nUIAa$W|t0U8oh91kuhuD5EUtktkII4nMKJKvRcD5=Nmmw(+dlU>LEjcZeX z8{+l8wE2ny{}mA0Z8rWC;C>?PlgYheuy&7NgTX>~`6u1Da1!UJ5lzQz088YI%u;yL z!Yb#4e2Uxh@&2dY!0<~$f16geXhPq7dyKgC(|xGlpDu$h|C59tZWd_J69p^1N%k$! zhZPX+DYqE?3!mR$&ISYF^RX`j17Q6R`?xM+HvL8>5u+l@(5>%%~c!PFV< z^V}}lKHfXr2|yCB(u~Ve0qpUA~G5L&*zEC+!d!Xz{lMl=s-e1br2Sq`jjn^YPoY@g~LNFi|}jux*! zd$$>h&TPAGi0^24n*oH4R7-9m4oH^jUawpAl^g-%g_0<%R?ss__IA_)0BP%;{;i7A z_$FEaq&V7Huh+b2oNm7xNY(H+qPhDTE3}^e{AhI91c~e*eIdJ}1n--APqJgt072=3 z|ElVY&qf3dQx!t1^q|h4v++{W>D)B*EGr;l!RQBu7WFgU%_vTRHxO5j1^1G(<%h}{ z?Dm2y=*D5_3je#CZUQ;j*zm9XU(h|^0rHRVBYZRXnQ|WMMpS}{PJZn>#v1IvWcx80 zcS<2ht^q_roObt_DY&xmt80zQjsR}Xhs$MV)%G^YPpc3@r-OD(Ds9N|jbnx~$b zJ8&K*Iz!T8XAJ=XvYYp~s5~%oaYJ?oO)PW?IFY?0IQeD)a5^7F}NkR$n2YVv6vM1cKj zl}ExZ;F(|N!kTMd^bKe=9go z;}}s<4vCwyydNiF4U?U>e9kKn+noLb0CBVf4xedheJ@iVoJq`Oigq%SfRu##R+w|7P>li1129ty#Psktb#p5u1<#=*AAw43ud zI$*7oL67x+a^QejhmH%UgymoDQh&&ucm)q5{@+bBP+db5tHO1|hd1>7PhCf90$9c0 zPXhMeAMGDPC7b2Ep-Xf42G+XI9fq$+kUMta#FimnRMqMa*sF&#-Hn$%dZm2zld6sp zM*#C@S<}A)Rci>?bw}2QOGIPy66WU-y)$_`1Vn43Kb^nv+#a0VQI7^^@_kpgVo+B2 z4XL()ZT?Q%fjX9&IoJH7!!*Yc3>l2Pswoh7@(z6BRO>>cpm;^ zB4GPII_ioir%rko*vgkUKUBhn?^pwiOa-8D#ecMdr- z^m)hc+w1Ig_S$=`^MC(S7x+GL=XGDteJjiTdT65F42s!cvup6D1cWuv`+AZ+ri!~$ z-l_!ossM=V<5!m=$PKY15vN%YVh}~KUhZLm++O+!|LiclV&|{CfsM0 zBfipIIajd7d-pak)z9kd7ZhFV(0H8kc$#tg&Ddu2SXF=VpUF#=yL0_|aOD)LX}FF* zNC)&FPy;$;sJ-Q^(yzRZnj14)jmy{0m@v)86QVs7_D&bEV7aQG{b~i|7h*hgKK>b` z9#yp-#J6~LIqNgtx5kWh4BH6>n-wMCF$;31jPfWgU}}f}rIs;NLwH&lYA;abX-|n4 zV3(=+oD;?<|K3TAC>ZTN$^+j^d@CA61{}zm#BQtOI;wVr*278q^b<7)3WcTdVdFp& zfBO{8{LmMxjY<@l0m9mfsSAs@o2ZpC!!ZVq46SiQy?FhT=6-addkaQ z29&;>&Pp(O^p;p4Y!2a76$}A7Ia%&*H3?QN=co{9@q`qcs$!0=kou_HEB*QG`mL23 z?|>q}=fx7({`N}ur%wiqTBgI{{qslED0kW$%a8LUUDnhF&(%?z~8M3{&W3oaP|tz6AhP>xSUO zSn}{tv4?BfD@j*P+ua(cT+JM3c$deXdnI7b91#Z-@kv~zlsU*TiuwAWtjRL=ua%1r zfHl$SOHv5`YfZlCGvdU*dP@GUHNh?U3Vs%y{loqh@fu)F0FvAW)90{>9Z+nVpnLqy zDdIJJjtz5KWiP%I=w)dB*!ALtN?ElvlxIltlQclX#Xx2>>_FdOQ>(=9*NJfmB48~N z4fX*D?g6pQ_=bWqkk%r%+)n|Q!}*rgXgCt+pk}!!)etF&Y#M-8k&b1__7pQIE4#Bj zL1ilJzi#3Ajxm6$ikdy`k6ZF?ig~GD>QQ8x)L&>0fVMIfKh(%sTBov>=;Let6ouVv z`N4n#th;NRQMbWMtH19k=S9#2ZgF83aiyKjqWeUh2Y{(~Z%j-z%TOxFoR>@tLGcTl zJD2IgqhCGc|MwKg2haqmqqAGf85Gd}IR$?iZh_gNTA&Mrm_Wpz!2$aY77U*}tPq;r z-CwsM7WJ7>X2SDXJdIx8E;5H2)qWsu%jWRnY?ky)(P?xNB`VdNdahV73%$F(QQ7 z(Bsu0V8+Xj`yTfafsWUYm^4=@$?AaTcGdmKUxBt>rFM4~#dWKi&$)f9&oMJ+%JW5; z(E-}7g;n`{pW>#&$wK#r=iz@BYU3(N2P`!CpM|0gHNVA)Fnq1B z|7c(LpJ6mW0m~T0qn|m|%*?J)%F==u2-6dS$E;IV6o8wU_F&Qb!P&)1JYr%-D9!0t^xz^L8in66g-Rs3gx z3EYam-v0R4s446}In$MjM;l6S#b#9(n7Qdv=dCNzDqzu6Qcj` zUR>`v%FF=oC)a5+!*c`KR`H{h)cP0Xe%%b!R>@BVqrLkD+~W7zcLu>cz=0UZt}Iu> zP?qrPfFLQ!C+a`{SVAIG_(O9WdKq7RNnK3)*8_cZ-oxcU%)yQ3l)B=z0ZkJ$@d;3~ z*BmN8`9TKMpw9iRP2@7lt75=wM%A2J@0gJlju(NJfCpt>xX*5JwJ8+OtK}wBHx&ag zxeR-7VO*xJ01_1cQbUf;MjEg)bXH>)OIGJV2T^XawWbzmT&&f!5g@Vz~nbO5L3F`x2J+%P#(v#di?gh+y zIH9Ds>U3uQo6j^~|5yZY-G4)2>5kn*kw<-sgVL$bDZT@n3NKq9#uQCA(DABoeSZ%* zAo?^6m}FBC%eeX&Ej4WK)9@zM(>7H~$dt&cWXMZ-TFU1OQqP0%QTHvT3Ou+#X*9jY zD(9=eyCULM0G!MEzbCl9=31B@WcXS+R<_tlTJG!6F!1c^OowqM&%|QJW6Wqk%csi4 zF<>Q6yrFxNMGt&aDf)8Uxe;}e z)*+a=B7eV0u00|Zg!UK(u>uL(<1XlP3g$k=kZ2J-5Tn3j-U9t0s>D*S<}+b3{13`S z9jJboMM9sR;CkG>oV)C^oU@TpDd@4&(dbmBlzUg``V6X?$NGtS64+QIkAMEnzbRA@ zO!aT=$>ZW(6aK^KfPYL?bif3M_tWU?#2Eh9AZp-iWT@&T-hZuL0=Z@+<1uLzO3p%w z81txpy^Th(LEhifiRKUrh!ibzOmwG;6e3p;twdwvLHLN~3 z7kw_p`HzQ^;SA_GvXzS0mzt+HPhO{=9;Cm05GnFs>ubQl38i;hi2aoe?bIJ$fMiJg zb8yn#N5o*aHEFTBDJQGU)6QnN*e0_Q(ULBVbCC@!EF5$g@$zh=c z<9MH_`~Ee3eZ-U4tl~ghCZK;uF3(Ev|Arhc zwqGx4p3sw^O70JiUXpYeAo=NKIOwgO@yOaevowC@{k4Z`Rr<)~JzWR|O70{z%mrLf zaz`n@%0tVyi1`dSQd{6ifqvd@Px9EJK4*7}ExoF;kyi9E+=(`HpT-0JBi_DMH}qr1 z;&u2q$#Ew^Ql4ToYUG48v2^4L@O%)K-WwYmm+Ddye|3D64?TVUo96z#ytL301;psz zPT{K0e=OOSBBOdUY1BR#9(Gyp(=#4tI?@Z{d(-|@w}jE8cg8o5yOpA}kJ;;wslE*A z$VT~kiv*9gSrBU^v>3?i?Nor*h@w^io!RdJ;|<;dvv&TUziK{t{C{3vd}Fd)QP&#%KVPc=YQqLX_?R=)x~+I8N@QZbNX56F!GB=< z&1dpCi&F8?!6{|#gwZk6Ba@Nw!6IG?BTKwNjJKmP>R7xe0UM$sO=|(J7?F@3Jf2Jd zo3Il}e{Jr=M(B64)|Q6@>;f1v_~3i)t#(>J+oH6zTKeuz(^bC<4-qU+-h`rueb8KG4Z#TN{l#Cr ztn_xCGo+S{4!xFXZ>7tL^)UJw@*f?Th0tEHR%M^h}~WbEOdD^VV(I$BIyY<7qB8=&pb* z?)?JPIvonyDYydPLjSHgb;5p?Q_KgoXoar-UG)E+^#6*-|Cb^<9!)p8R@98i2~I>+ zz?mTs$Rea>Ve_IHM&a=1-Qq@qj<#UTvkfG2EwTv!J}^kroMz1yr5V#c(;oEaKS9}s z)a+h~0`HrGffNyMnN|4Z>;ORx+8P1XH8h^4RNQgUC8k7=Glm;5gOTsUD~FJbiDf z1aH?iLCeW3Pbkk13YD|oN^>p_#RE)|JYAM0d~sxC1u|RNH)lUAJeDUv)~d{FHBWqG zb|#$jzSr;9er%o+SKTMUA~ov1*8Sv>$0?)HCeZz}c;*?>Z9cnoxy6jTRPUwc!sSws zu>;vg?|d6#Qp4I6ScPg~@f@T^>(8fYPsBo#D4y`RUxo3KCn8){gJD%kUU*{x=qv8~ zfic6Q+<8jN`Q`7xZX;-_z~X4OOq0CG&A9vB4Wenu>x!k<9=Q_ej!ACg!>8MN4>oT< zd=8(rC=t^>7ZPJM&G3XjE~j*!w_RNA3fmN66bt z1ZM3$2mW}{$EeZtQ*`d@l`tGBV%_%DYlSO?$e`QuL?V3mkt#H?EY#dRl&W-=S%<`h z!(I1`b6c|jcOafc3DWb8dhYfL1`DSWX;vom&o%+HHgDYF((O1L}-_kef%kw>=ZF@j!HaJ%VEhYO z`1bcr77I$6Nv{>Wf%_<$nw=%hns3b}A- zk>F~p#p|wu3;V2!-Z7=^KEy2NQbOpFwd!}->8>YesF&+nT~>YY9LamKxOb`NG_(!U zu?}WyuFbV>G5u6&y`<4^b2dUY-Y_LhX$e^{mW7}$M3lW6!hpe$IwEVFk2kGhGad!CH=I0qAmecH1F-N0iIAHUx zANe1;gvs^TnvuWoB%>!eiu~k@2(eD7VXt#jS49x>_TcUBo;%qI66pmmGG3gJz08Az zfXOj!!pv{*a~+Rny15{(S;e&yg8raReYEj>k78wG#ay<2*0J{L@i&}z(K4*Z6CVbF ziRISK0&#ADP%jv&^SbwZ#S4y7HzS%J5GT_5eB5-;Yw%}?^W-{u;qh(K@b|-mnkC+! z`B#fMX@n!)v(;k~OYUm;D2>=Wz?t%FYjZ}f>`gRG9V~0qKn0M`4&*>ci7?_%QG^BO zi>_N~%c3-7+*PrSv=FsN$R7n8Ep2$virOF5PsK=0J)|_$)jhafI2{}vFU;qPy@6lw z-%0b6r~T}DpnUX2UopHLOdX~juA}32NbXTJ!2pEGe07WhNM6XvmxlV6$eS$@jiJKH z!-Xec3k5|9;AYY|-^`$UR1EX4g&nyUU9mvhRJ_F(T-L&0xR`6kq$-?$7}U^K7oKTo z+h))?IBKOYpZ%pVvZUGI1Yxf$EE8|^xUh=}FM(o*@}p01yo%yZ^hto-BNt_E&1c-` z+pEL{*I{*!iw~rUczcOO%!d4?;(1;`XGQCgeOoKHwpJFx~wy_(<9h3lRRuN1yqODxCR|%e4(R@Hx*ao~h4M zI;Fbr9?(_s)YIZTvRU=TONF?Y4Efl}Fbbv?@_v;SWceLlWt7Xi=w2b0sKr&E)UuC& zw)I#90nxg>+)l=N{Z}?cvo3TR1;*G@cOxQhsHi?elWLABu8v+0o=4#Bj-2khj-SAD{PSf*z zVuf0^IL8LJ`EqY9gsJ!u2M@(7HGbqtd;%c}+={)v&$%N2=Qfba%QTt}p&CW2Vl|W| z$ag}{H!O1Jp-N>biDM`Yo@ON>GKQv-oN(^(hWp9iNNduI9IAaU*c(?HVpfwq%ka8< zO}oS_N-7yID`cUl{ZiSa{eoEM<-@}5v5ogv#u((1KQcOwv!L&}V;&$>jdI3>FSj$x z%;=*4&oR(g%bL=(wxDD}nQSg`=o{Mos6cHEO*w~QM&Lx~bdZaNDl851AjL^tjLc$8 z4$_D)PD3S4T;4OV0s&+QY0o(ARME1Ma{MH9LD6yyM!~Hion>jd%j)Bcyw%G%7472@ zAKlHT;V;3U-9Nf_zYB_=RJ(pQL{i;1sa`?P!6m^ZH%#16x?|tl>kK zTHgiR^F)I!&yFKze%7{qh=4hR4O>h%i{5ta_|9=6JnV+F9=o8w9T{ip^Aro$~5=RPrv(2PPQ4@R3bSrXFSw1HK(9a!{%4 zy+4inrDxRGbd33X~yVAQBC3i27mkY3mlp+oKhT zd4WRiXC27ajw0`LF?4xf4)X>R*YXR+;X1V1_@tjH?RU5Z*4a0!KNrX~z6U}o#UBBw z8!#S33G<9JZgV(UjlUDT72RAQ10Q^8DudL_Si+ni0p3eEF8l6{!!yIpjkrZNX~O;R z9C79*oxJyo4gz=&c^}^g1V6pAfO(h_;PD;J;chKDFL@Fz3S#O2e0(q-IsPT%mBN3L zemC`IW6;i@Pu|Z=z_`$|G0*AON;#i}roI6s8HP&lYL?STk=sXmFV3-gQa01N+XCxH zcknY?y3rzly59onB|IB0wK_N zx4ZQu31FxAPIK#YTD&y=SPSnJ9&!+M<6u%XYFF(P^{f0TcKYaau_@*vBcn1sd;`oj zw7!MU73tLr*#BCi*fs_sCyN(0RCcckSgW~@u71N|0J?@df#K+EVO-Yr`NDt5 z447ll*J|GRsmD?M?6})ZS?5qFT4M~O`!f|t-Xuabv&9)PPILRR$w4u;$i+X z!T2E+`Fp#E8J8wm({{Su5;yh=)1^BYa@{r_vS}b5-j-BbazQ6cTB=lMT~<*{C4m7B zx3lda@>ukfDzK>yDbDi6Q3qb25RWxiwQJ>FI}H9Gn%>3+PKP54YvEi@+9e`DJ2DxeRYqAW{&i-{^LOL-7(&6 zu25nvFi#_002w=lGg@!SQuA{z{n&1hDefmgS3UC8226D2BfZr?S zO4RhSdsXiY8WS(XW~?t?U2GN6G?!9veN3qq@Bmw?YW%Sc>W~~W9{Roi&BufklL|2Q zc&iVwRu9I?mtNf&d>+m`L9tF*2Dla6BN8~6!^3PqIXC!*vfk#YR8ds#)!sBimKJC??1&w{xWxsl+)NI~ub z(o(!$_KRD~bL)|}VPNPR9p1fB0t3M#W&RJ4^@o+^j(DlUr(;wYg`J^TM|qi|KgMVz zIs!J}RsnCdm7Py^20hw}M{BQYOzcS$IOuDXo z;}MN!Ue@bx_nap*<7cWOFCypyX5Ez;iiLerE(~Khm57>GMyksy2JLCdNbfxKAf{mqoqE zVRVk|#V=Bc7|<`TKsc8d6Sp*~n?>jK@xES@E|b6AHQjcIg9X=~Hdu34PgMI1a463U zI4FYuW)@@GL=ad`x?PoF@|Or>FMe5DxnIS2ovPA{roFRrr=|uK#1@>cL?uTopb-|qBiKuFjof=5{_+7!Mvp8 zgIxfxE`vdKHz-WzC%U1*HKR9M3weuaD|4Xh@NVMB(DnKJ7O)Wm43oIq73xu@l14?} zsZ)75)hPcjZnp2NBHKd4BEDkVJlDs{vqCPv;ud67BplUqB#eKy=dd?f6nZT~2s+IH zOEV#ltR>XJhCHN$e&C)+s*?CAxJ#2Q%iRP~`39kCZ^`Cz3=@HZ_WXdZKH64Bw@fZq zn$`AOeWn1R$kixG%Ex6R#BDTzkWx26)_(h&^Qpj{ACV*<)l40>29pRT2^>UozYM&! zEYA8yzVkG|Kz{d064IHscgkZhqBLJ638qHZzHO|Qzve zHQbKxf7j~@De_%Y*oy+Z+CjIDN11pN`a)_ci<&g(SX?SKZ51pAe0%K$6!( zYn=pqdA!A2T7le+mv&BAR8~cS%qsCyDC;-g1>|`Y$&4BE`*+8Zk>R>?wfoybryn=M z45R&qHIIW2uvo_pfV2-HeffcA7NX&;H1ae!trl8zZ~hbs(mEgU6kZSZh<( zou#I?``p^do1^&d<;F5I?}Ethc;&5vo;FO$Uo*}rZK3xWdzN1Vy5m zwk+s3g~yha%&p2(Gyrl$q*5A-_4sUELj2bq{<@gw=*T-MC}6dc2I<{K;H-{*1hV?U z$C}CP){BkHk%FZKA7?2S@7p)V2k2-f7anj&@+#{Cu_ll9vny^UXGbsv%08yC$$E6) z2s8a**XHU05ep8c&5`iWp4c7f2_81UobvnP51+kd! z6>63An%3hQeJub$MG6@GUB>RmCT!{nm0aWBwW?czM9^xNjl#oJm1CeCO<8aUgB)lU zue#bUFLGXZ(($B59i7yT1(S=#*vImQ+~h&I!ht;R`V%nor${WMjk#KDU{PTV6<=?h z-nqFY3%u?X4(|zt*roYhdlW4U`hAzv(9- zk2t20TH$iT-R<@hi+nt2_1IcA7VGxR#;YC&7c0=~mw4pKv6yE3@VcbNC? z-QCq7PGSGiC}Q99aV5QYoRb3|w?#$%5P$ot&^%$>h#!*VVzzqxxIfrKu-biW-o7(c z^ZKz-%ExlW$xWR?-FrWPg7jUMTC#CqxA79<%cS;FX2R5YPeNpGJqcS&;o$GQ!a@~3 zs4E+nwZy#pTBt@8J|C}=#nZt6lZm4(ObNtVnmts2$Kc~i3xE}7@v^f&t!P*YAk(Lm z1m=i+ly6Alx78;{z~`*x#ncSKc~+f6iP+>CWAFe}*pA$~qzN8fVy>cTD}H@g+JP(6 zD0tM0zUJHjYj$7N;=)_&4iCK$KIx^4?drf2A@30-C0PXELgYd>nKiS{#O-mUcPFen zfL*A0YZKk-I=7Bsf@uuiOk6^Z}-^sCU?4fjL z#%C!hY;JCzP2@1p2lp0W0p8#FqsUqq7rAS1RZB|?hGr^G%PCY)bkzaf_ePs!VR+1{ zVW@_%pvQ_4KX}d+DwSVAp}c1XpXd;q36S>Pu9HGaKJHQ14K@n<17cO=RH zTWc%2E3&Fr=2cH9Yp4m5ShkS6ZT}Q~&~)5Qc6&`}H3^eih zmwl>3Sv4pJo&t4Nk__(4>x)whGDzj8usyfEB9#`TeT;BcSTMCZJxVl^$|^s72~(1mK*UkjyKXNA6<6tS924+LA0guSMjr z)@=^)6$@jo$q@d^>?42XKxJ(LZZn1Rd|3cq9xyOv z#>9fl1X`HpeS1+Q%R58=Dfs4M*gIk-&22aTSdjZkYv_%1?lge$5uLWmYGYE75)?lZ zr_%{w#$0;LnEEvLY9!K&KITPpAo}QzkA?CPnfjAX_s_ukT`T>rK*0F2&sr>wJ4j zD%vp4KTI9NOYAqtnbvaC+pSF$0%dtgc3(wbV67~t2$NByy>qoF5tb>JpBK5d(JCpb z{@_$BCw$(KhsyGIPMW+$jH_)5Ru=BN*&lXs5ZHUQl02Rj?vn?|1! zJX{VZ5D~dd{Tpt`Z;cA<0)-Y6Zv#JQ(?RuIae#Fp)p*+$-LuU)QCuB{7p9v_?9Lxe$ z7A3y}Sml`9W3R+}YnW#-*@Knt%j@r72|8Y1TLAJ);-27&ZI;W*Chmn`4R7QGf|aD| zk(-}^lZ1JCP1XoJkLq)5ho`4o?zz7!)Z5 zO0@yB0M9^Boa_)P2#fvn43Q|XHtSltQ|L2e!OB|f`u-Cpm0@ojF>x#$eKyF>iPoX+ za<_nB1hlb?<)6E+AvL(+sg1eB(L)~dimwHjivR`p!cRiknzvizgfd&!9ishqgQcj1 z0rc~Xn-W}P4v(-7>_AufsNK4Mq}%~mSfW#L9W}Y#d$3=)%?eKaCtoTfAl-{|M!Br= z<&g`fo5eD8C8!!g4#eSZ(OqUA7K>pZwrii$ylO>Nfo~jq9m^B51nJFsa#b3cyDz1ubtWdy}4|k*uVrn zqViC%wn1L**@ORbg}}udUC~QQDtB8=nua$U@? zk{jg)!vnLv3@v&xPVmlI#?;|N56Wb^drQB$gmUUiyTv!XOXknC z+itRRutDB!3KG>8^MGtjoBQa_qc z@48;s)6>86C-3J&uTeAq{#k!!%#2h}gprimI}rIz)AjG&<(L6J!wxa8M*w~wTxdC! z74vj#t%0L-i7E5Sm3eh}&NTD#`5t4&M`-`)MY#!ot)_Uy4gK<<4Ax*9Bf?xg!E#iZ+30kUR<3K$54L5}-mfL8m<*D}xa*4M0*nkk6+8YMP0I31 zZkzIYm)ic9Kg_-YWh6IJJjsIOCIe2NPJMvd@tD(oc!NkqK!dYD(=fTvJ>S|?kR>w$ zl8^=(47okj0y(4n1*_Hw(`@my@#Z&zOA8y1zG{}sFNr%-Qz|eeY0Ra%t&?WSJYnQ| z2;+7)8hQMbPD`m1a%EayKd(a`egLR*mLJ>tTM;Gz&rN*(lP^_i_#0O}TO%Ne&}X7X zekKq0t5)7*NXSTgQmoqpF$OQA<4FW)_f;S5>31BlZ>Iy<;{M+qZN$IY_WKDf(^z!g zBU=I`-R{>jV^T?6Yl6IAmzUu3+B@2gY)AhL!3BR*OF;H@2Uv3J$1*YXM&_lGB*o>J z!=_r61~ zlKY{W^Pel%!!s_REQvTTO7^op9omwBHeMadu;NVXht?&zdm%4Ix9HJ;!lZCg{i!^c z@n9)t(Z_-74rT|0tk_(8m*nhkOl90KZDX(gZS4N*SQIXX02mtyW*frBr&5?av+v}= z7g=G^u55EcY7u^!kzi1@w`D;z<8#NOzMI4m*5N0r&vv~cYXelDBr%kjO17lA2|o1pgCAeN1-X-9kBJ@RA8%dA)n%5a!6^F!8Fs^0j3D4T-E!R8||AZ)|96p__P6q zYws5?h0>&QY`~a%$E;W0$da?=4*;YFSno&`aJy=9x6!Y4clsY)=)dDteJV1PqdNO$ zMD1n!cJm?NwR2Myb+khXj5egAhNpxFSfl|U`!Ka*8y76c+}p3pI?}Zx2~`WQnEcp| zj+-}}Y5{+~@D#V1glqRA0E&FX`{Y@Tgso`PKi(TCkIuiY|D(jKtAN4p%QtX)-MC{< zfvWsy%g+cqyY))A_y10UQe!BN$T@hcaVdBdr9^F=J~|!*6gr)O0Kz|WEScLhq9~ma zIlqJjQ6yaVec~mUl>K^lx#M1gMM0Z%+>3SU%6$>TY_m%;T@fezqRAXQRoQ*6c{nacdAK(xg-K)$jJ`% zKiWatKm4A#w)YhkuXbva-=?Fpa!P!#*(FQ`HPb18kfjeM@rZZYA4|&Ng2TLwm?$Kt zhiO@QJ?C1n+#jtzrzb2`tFeExs(?vUNS z8zb$u%Rw`&ONx^lmJ>iS$fa(7meS-HlT+^gBaad5-?@J>z?M*w>Ap;DVzB8rj;r_i zK3aho@q$WSkRRSya+yhb!M8Fzsw-sc1tL(ygE$SjZg>e5xS+AKEk&TEvdLi-H)E$R z?=2d*)!ePLntm6OePJuOvn;yEZZWtMHWSR&sIX+vzCoel@yHj8JdZ}?y&^^fN=U#| z7q%H7o;sr56l>hhi=GuCuUh1)o2cO^J$O`g{X5RivY*hM4bgVNPkxk%XsZ1N%~inE zaqs^D2u`)VE##$U*)E;6sf4!nqWEeVkRV(&+LnInyazGHCMUugJ`fc!Xcjuvm<^@8!v;8$X1JENv{ z5_v7ZA0L-pYs_k^>vU}m0Q!D&_NCl8m6`?N^MKHXp9m)}R6!14_fcxCUSFRMGhXtk zhEUN0Nx;BwgE_ri+__&Z?g>z>B!Gq>ldu(HRHJ%9hsciEVSlVQUwfIpaiY-SewbgP z-If(Hr7Z&&{H`oF|CUM|w3$jiBcIC4GE?nrd;RWgE4^UA4L;**D!^g{c^vso-9<` zT)I72(pPiAbOmrhM|zl2#^vX%5=bnm;2InLFbFxglbb7-gX-R5eil>`@`W z1l2&ivAxN-yPz^aCWYj{^zd#_L- zf=)8RA#3{y`AetL?7Pd7yO93Jy!WtEDP}MV%c#CotcEZ#xHt@;Uo~;oXO!sN{2osA zgntbZ^1LKI4Yy|AkdzkEaX+B7*gMsqoi3vrvi5EWyJ#npNZN?!+8mL@+_!dYod?=( zSQzkxUOWN-i8r>_IDDxFfcjIrbvK~nX-?ioNG7T1P?Q=8=z8a3t<@f4?BGxNlW<`a zE)3d68qe2$npBoZk@wL5*4D6BqGJg0lD?+oQ_3kct)4H}-twv5Os+V9*|P&&&w}Jn znQvtS#6!bKgfIPqYT>hVMMZ_FVMillWAb>3!`@yBxkc6LvzpFYqv_hNM!`jE#*Cwf z6~pD#5oAVtwNcej;!YsLCsdmwAK%H(RSqeYrZ-1{xE9!y~A5g7|Zbdf^Os*2_-9FLN8u2+c;Ic#xg*xK0tpaVFZXW8A&(jBC5jE*5wmSOJC zF&3=*aLBkYhWeej#sp}LmUOn*$%6b8KtdO$J9Y*Ea7oWFa zn?OuUC7h{cq~g~J`@uB3&N+SmDsREEMlrb0RP?ZV&T7PZ7&^~wis_fTC#jmNJWiwv zq@sob7%zIYLrJLUC7AJ=nIP#))ef^)r1KwjZzK zH9cPtC|Nb17g;Bvv@4h|hEbk(ttT?ltdwN$4<`TeDnLq`n*?bUhY+AtO!hoIbzrfyvN(KeO1jzA|@`jJP*djQ$Q>JGi zlWe8EA2XWy_5GUv7(^BsN_dQG?N)>)PO4kTrFw<)NT|0AaaIp=w8L{TuRavxt)CH# zc#)j8+%+`1hZUD+1T{}b2uAQOU2iHHpHE081O8k;M^?iUDr8@J5cyzxio!nZ;HlU1 zba$)Zb8+nIyAhLlv)mEmn{!F=n{K`(&1dIxthKuD<`Kt^k4C)Tix6GdtStK_gkMIq z9!CfgrcgK$Lx3}M%joK|a4<3&+zv->xGnX{^frcu9iGOxAF25-f3!pf-i+9Ml~Zpu zO(%~s?;NHodJ`QFd7EN_LFG^*2j1JDTw-tWqJ)avU5icX0335o$#jEiy;;RD2`(h{ zAV{2mYt|!eo~xe$BHt!Av~2HI#w4LRy~ss;+||s%T$DK%X<1pL_)DRF{~w?{ojfTC zEbM96El-DV{7%PehPag|;4)!IC@ANSJ{(^51KV8`g)zZs=78V~SVZ$qj(<|mf}qyI z7n7s=RfeWU7#V90o%lCpTKD#p!B5Y@UedKJ=q7wN_xr-yH?DqO78+10jSY+oPs3O1I61b$D}1KsAkyN#|4D=&eXQ;@AVG&R zNY3_zNg5Gmwn4yfHc<*or$S+nl@BJm;#By_IbKl2HD+GP*if`o3>U*5Z?CR~R8H3b zGQa13v~s2;(i@o!SRl%N=a`HrYGF3N6S4&fA&eI-=51CzU zJZxku@Zzhdc2Gee*>QVKo2UJsvV)w~e&3O~B)-ZU@`&(aBtx!0s)p1?SJ3qAy>>Eg z(I_!I>~NrhiS`*Wcl&6QiK^by=g{;@IKHXrFb_!RUZ4QKfNQZ=`aBm#d|8HCGHV3e z-y$%-?P*d5z-}nBJ5DAR?lEftS(fuT_GKp!lbvPU-j3qI7CfH?VY&U)2C`a8Oa^ zMFwa8`uX`e2{Xh=MzL&s8YH2126P@@ksSD4mP!csF`8F(YHEMN^n4UYriNpJLZ-)e zXG`Sn!t~-D4a1A@!JPYCZrhfvH~t$5!y+x6x*#MYm}B%-Su#1&v#>dfSC%11+@S8| z=uH2T$F36HP|MxbtE;&_xvkT3k(403_+GDl13w{UjUr;a3=_3sCt90WZ)Qeq#|eCV ztHcwz-?h~RT>!o`SN#1+-e1h2DLRR``$HK36zgG&8jo9nO0XCAYwK>-!Twe8G(bQ+v_Cja+Y`+fJZ z)_d#^dw#s*#FZs&6k-RzR;Zy0nl zgUxBIX+r&;D@1!R^b!ZUhR)KZvdoOEB<-a{8>+Qhmu;0KPudGi@4%R%D?)EBd_*QU-1=EM6><;!25wrI;F;ia z>}QgjjJQ(N^vH-%R175hPo0)Wo3Z8Xg9lA0Ug&HW#8xKc(c^wGiDd$^6$)3ZM<2g) z=&IQt5B`1YJ?(#Bv(ODBd4UqiwT!rkD@ZsTE2!aulhl7a%5h~z7DHSCvsthhACT^S zA3R$5EAOdpg8PR=_!FBvENqw*x%Z?3u~{-#$N8xYNfA7IF%fl`&3|_}2F6wVhD=&K z;v?oK8N;DAz($5c($X3;(i}Ulhp?V{^pSF-B7>h5@q4ox6?P9S^2(|=KT4%e-MK=| z)}<>HP)qObd~ybDKG&BW_x0iu&-Az+SP9VZ{NH}>IM`TbbekF(+-JRSZteySEkbQ5 zlx-#-Y_!_6A%gLtGag|=?cB=Ym!f7sMpTZoZ47^+g98kKV1ZptglJqE^={{<t*tf5=L)E#cf&$v zKk_(O%<=9)jrInaDH9@rIHmQ?Qyu2G|06A(M@lD-rilq(n#yQ$9F7XixmXzx!h-x7 zbVLbhPD+i8IJXq>;zn%-8~cDOC+ZK+%|bT-5AgdScl@TTRO-^*h#;OYvlrsh*_*yg zD?zCIrL`H5TOdfvL5NGMUVFlWc>E&eu+?!2bPix7+wBi>%}n zxusG$5zoJ#Qzk48UGWjZ!>l!%m~AA5uLFiw>O8Ae1)@#L^jZNmfCMp@j&)<)d*y&( zxtGILY_Kag`K>}XjR|ZmsEFeWKRp8(O6vfg?HVlh>~3(s#y2RUGJ&qBxpdJd zC&hYX^kOcfW8{2OMaTX3CddB&KYZktlg%;$+Yh9~@UzL0DgwmiEdtEUZB^M+uyECmN3=H%VWHYY+rWN z;4TULjfbdLuO%s9njdV46csFUeEdI%M~}!csWQBH%1VVKEoD{lhUo)dt~4Whc6}^z z8Dj~m!w!rT>;BgfvP_nWhNNSb_cil3-{xyh6w7&T%O7^L(@Nq z+Z@Q+l;9oV#6$L2O+)_{;-ww5u~(&W75J5>;>V)m_nq#LsaKc9*v)F)^r*qQE++AQ ztqRpjWZ>bO#YUJtA_o5ye{v$=Q$B%;NG7X0?N>W7Vn(@f!xI3e=ULlWG+p0^VtL^kQ*`I-TCzg z&0X{np>h8`7!ktgK-zb7@H_)TRM`tb`J)bG&Nh8&^wq85xDQ-7f5IzD+p!h2JeC_2UhRCxhI(>prJGOl{z}n z6!cvYcddZxa~HRLF;$F$#X9feHez5cCA~m%B=DUS1&rpMB4w~xD?TFMs0a(?YJrCf zO2`z7N>a|?iG!3NuH^QC2L#r=SCOy#ctBo8+%+Sz_}z7i`!j<8Zg4kEKr*f3rEThp z8=hU?K`f!)BpxngX}IH&?x?UI{)YC9Bs4Ds#@H{Qr5#obC@AK6)IMs z%uNN`_f~TpRqFkWPdD{!2T?Pv-v9l8?&hOKi9e!DJEqQ?ju-dI5GrrN%@i@69sadOvNawZdt)ovJ= zaX%HyJh`jx_88ZcS&rb$fEt4l?}eO9fy34}+`Xsst6)O@L)1Dkh>3sB5u)a5tc zTo@HpjBzDcR>q%i%6pnYL4PT*L%-cc_-en!2y`aGk5vt$m3mlz%{1x;Gj?$8cpzWUlD4xxCWy}N0Y&E9fIp%b(#r-($1YHO1)q~~Bo|VoAw1*=(`aRB#wTk4ci-8aeO#x9?EyHO1 z%0hC2#s@Ckwo8F)0}_{XF|k@TKG$={MiAyFKcVd4b>Gb@>f%mx;hVAXt={~Z(6byN zYL)DMGPyyvaV$}52+#)4L2Z#e-J4ye=pq`tyn!A4=~5v*KwM~CSiMGS51w8EPz|vf z2|2+hvXc%b`#pGnR+I4`-CT?}N_$2KAHGb-irlqNxztcZ1Dn)-y1*dWarj@LVC8{O z!EDl2z&E5!>iA+~{y3lmVSQGz)zQ*&n+`7O0GZdC-!{ z#&rOrO*X-WynhvOdxl#EOt3PRTc0P|JQ2N>^BrqXvR85Zw&~|vDveX`ro#BF(*^0xcvq6iKXNIn>03FbhlN@;bkZ_ z&T+N7HOxau?lKdXxE}i`N88%Bf-l`?8SHznwDQdM!Vaf8Pa7|kQUosH&6U^3oBBO` z4eza|oj(*Ybr?C4Wc0Zr==BjDKL-^c+Li710O^#Zt{qh*-!o^RjF*W>-* zs0a2^Id3rWw1G_a`;LL}()oY{?hiZEN|!Fs?Xwl1q5+NwPd1ki^g=dCxo-HhAWa?Z zSN2s*{YiU`wI{6XLEs8QUEY=0SYUjc7^+m=smu5F8Ybxk?Lg*dhgL!}~oU)S^T>jw8{Bc!XS6!lTLwHx0dBTdF_jXpW+t|_(W{8w{$FS{!AeLB(;R&N6~%a~q?~8%`2^1fvR|7kw%}KGv(;wu zj^K+*(mlGb5deS$n#Li;jf><6=?Pdoddwm8pkJ=nL zFFcqBj3$A!&V0Mzm)4SqAkXbtyJ&7)G>sslzC(kBi3i6Dr%4hie*`xR`<|4eUB)d) zOCImrue(>c@tBqZ&3lI>Ns`1%B_kY0H=1C(KN*b^Ho*()2a8OWfa2NB;jHn637e|L z??95#9y%`onFDXgr;(eZ=>VJZOn*EWyeHr9hKpV8bb!;qqv>?-_@9=at z6PLo^b|X^=KU7(nHo5MAi3R3T6r!{wbL|m7>$jXJG-NQ!5(M=RRGmzKAOmC zEg+TD2FxpO3~cRH1fNinW(-^f`1)F3|26)2N$#-U`~3$_LjbQ&K*W{!a=Qnh#f-kg z=vsh^Ayj-zXD!Xmfok{UMgA%tpMrjNHw&cxmu#S(KvU_YSG?s--~mts7Mu%na_MEk z+YMK{_$49qe!jTp{lCF}%<1}heA;yWj)T6S<317db3|^o@3-5Z%pDrj4asO+PodiX zism*(0&7mq3F-gvT58xXG>tL3_h*N#8Mky>j_Rp{gvgkzSdjabq3_Y065 z&AIKpT|i;kQKssAd4kbLy%vX3xPhMRJm*qzb8{o9UM?#qu=>ppt6WwcW2pJp`C5Vu z7Y*NbzjZ$^T?$yUnR3m6d5=mw#0x;z&Gbn=s*Xn>IX{&YN3*f5<9wGAbBhOS;(OqH zj)TLJrN97oBf^7_NJ}&RNdvKu7lEQzy7@whBQz3YT{%YNFu+D}XyFo1Cc6(-@w-R% zIM4|y^5zEYsU4zpj3<51Y}^l8AGz~ZM6TK|cthG&8CI8|5x%&U)RuzVlsJ;~Eo^&~ zUy9QG@c2`286cVqf06+(;RO-aN(X=3JwhhGv-%g0HW%`O>jQshYr;mF+oKFYoV1ra zpD%YuOPLiDIFM-jBCl8zhRkHnvjN7p=)D$M{Vz9up5TYa^|LBZZ%lLyqQY{8(o}tD zn73!0=V$B9E~YxbhUM!!u;{Jf!B*_^LzF2JEgr})PkvMQTeg!WY0}yp%O~ox{FIOY zw=zN@9pZGBoUdVkBQR%IqKJcFGi>GAj=zysA^ zjYq=}rK?_}rOWwSk5FtQ=-TGlW$8P#n|m2l5biV$5;#apH`_1zhnkIX&zZheMt6V> zhWuCm0wr+Jsyt&d|D~vAva#pSk{0xFFiJKae&}GEIU9@7GlcfQKp1PN z<0feKR-qw$S0W~27Q)VE9>l$S#D5mRAcOAFz+qlEiiaF{)GsR9Cwj4;-w-(a3N}Pu z)Vo6eXOGD4hi?(n$s87?;ZM_*g>6OApPx07nvGeXS>L~^oxf%~pbKyou@<`@Ank*d zO~~=WNBU8WQcccImEOpMJ*`iR_v4@ZowGVqDr7|G+=e5A%ri{~NV4g(?jabZlcKh}APnDXo!@HNMZuSHDS-T!_ zQ@*o0D}WD=)-0DI}GF+vHhy{<6@^ni>u+A+x6cE1#gd~Z22a1Dz6Ll`~RF~FrU0?s(qx@v3}KX)F*Xv z3T<3t+T+xR7B`*>R1nB*{GzKnqHS16s)WpEzPf(ja5`PoA7fc?vXzHYA%U}5=GeZV zg>9bC**!G`n|>#^yXPaqa57ihKeeeNywNzSY+ukqJrAD(YX(&S={k=}9>5l~F6~VG zyv|&-(*5fX_lO8$wXkX=aJJU_@!|BOX%==8(*A%%$nvSxEp#C~z`v}hVm#S!yUPWv zW~YMeYF2$KB0?LVZY(%T=pbI5l}!Zy#8zC0 zxqrcm+b&YN&&ZqLNAy514z!$c0WaFKFe%hYfew;l(XA^6Wu9nZUpkbURttCsd(xlp z1|Q#KW&2Nm70zXnebZ?YrpZLk3o0(r>*#!M|#2go5G%r5SGaqj# zL+0U=vguCS5gt4f>n|F0>;D=}3z`(}=%1)jwbE{9yrgxXwhUQv+C{t`)*d5*X8MP;jzuTF1F&siNO?Pg-sz+|#m>}MYoehn=fYDmno z&g<%oYUaamYEC3p^B^SBA~*+ez$;?WtOtcB-x?*MaEy);1+})Xr)MwId#WaAoB|uTbK{Q1Tr-5&t{Ijj^&e`Hp$fG}d&Xa~7BQ`d1nVLm) zb|!SF!XO&%i^mFES3jMVbEo+0@=tZ8peiki4wtiIi&~j60#O+vnKcZ=$4PNQ!%D8% z<3N-6h%pOaknR3OMtC0@Mh<&y;>f?-cza_C*PH5z=U%Qd3GBoRj#!CzWXH96MfS4) z^~YmPeBtJgC%zM*FaNYOqvBjDCygw$`#AhQ_VL9f;36-y^YL!UN?N6(m<3B6gqiI3 z&npZfHf^aQ8k@+=&FSG^+)9y-yeDrhR2VMY{3&NQ7JLzH((+I7eU*Th~YLX8NM^w|3Vgdt3~7D3)E* z^AnUAR6F-lcC}9_g(fqkKBJlfOU|r){bwKZ#0Ae5>Y6+5$GCR{Waf1YGd=RW;Q0gx zxUNAszZ!-Y#AvyCzlXd336o-7`v!^;QdfXKX!uqEM~1-cEYU^hpvu4je9!crKu^5C zvkOYGO=*arK|dhq@E7c@e8Yk6$5K6{#~tT^q`)HFR)*yx*2^c6un2k@j%@uc&pmA< zYrIe-Guf=#7^G33T75>j@rcBMYFDm&bcARt|JWgivDYg)kEH7P(cuz7p-*h~UuKb< z>8{048IXsH>5fquP3u1CQmWkj4wg`&Fh31)=T;W}o=ki026BpV9_R;Ll1Ee@HlCVR zogOrEAF?mguuA{Bx)=Dwh`FmuXosiB>3HyZFjR_@Pz7Y$=a=&tZnd2DJ6YA+BB)X@W@oC;h{xsQV`Swe4muSV zGGdFLWea*FheP4qg_= zw=475e3|m3`$vnSWllsHmzxPLR(Zbi$&?`xR-e7%btlBs1hvSud({*H|Nm7OkC^4&g))3gY#j~$z*}k|ny4BCLhyFx030fmOj+Oyk#bZegm#O%9{sRhFr1zE12%19K`$0N+E2>AESP~kF0|V`> zwPJLyJjn6rduihRgUSP?vo_M{=*ch!My<1TUCOQ^bt+S^Jd!mU20piOt&&+)rJ>O? zCWJA#5Y-!l+Uw=jYDZ`uj1$>@Bh9_SyhzhTCi&5roM4V9Wt6x-d`b7&H&F_*43;>v zoh6-^B&y;khv^~26Z04EWFDV&{;05-IA4sCA#MkJ16kMl6w95}SO{%<+Atkh9CwGM zeA2Tm*LcKL!ZOKv?FdU0c6s;bt2~<=f9jCYfv#lN!C9a4+5|~vCqCPog4m3YXExI* zFLLe-KwbV0`)T6#b1n}oG}RzT-ED>v>;0aTTQ;4*KE@3#fr(4l-qp5kF_K<+t3gzq z?gxIkdX}Mo1U58|(mBsE5$(iu+F~Wl2HP`CLe`FymM|7ES=9g=EXmgz&tb`Z6y$3LQFqS)X*~PFqSbVNV^xaK*Q#U z&g%uWK=a7KVVr5|5(zS5oSN3ScIr6bT($PyKPsaDxISW*=j{7wYaiO+DQ%$2eBWMP zaNVo#JgG=rh^%~#fpU_S=pzvV%{~WvglqcA*kJ{S*&>=%rc=p-BrV24-$;(K-fQ&1 zxNk@}k4_5*O_0dl?b^~DV6WO!RwCR&buKQ^x`N9FA8PizG{EK%pas6vz>9Q(utcNS zjjn+FMoE{?Vi8_y;W*kFtATUQ`-_aI#GIQ4t z-ES^>PB(ka>6KdFdC<-BAzjj(&nM?@?HwcPKx~?GLf${9|HT4eMte#Dbt!th!bCdI z7b%-5ktnt$bQX70?2ph@W_R&GK`n@pZci!-hb<*}{@i_hM|SIhBtus92ucIcp- zHWo{_njf3ohB>}46+n`zie`3WmfrdZSD5n_JN)J;lN?`6a`H#H>I6p0E~Be((5q?3 zu%FWjp-|Jl{0Q-WTiZ=v?kg{+hvAZ{z(C#y7-bW4-tI9dA9e?8ZZ5XhSw@!zgRitG zPJ!L4{4#f_nCj3B!%JgT z;%7Efori6QR3xPwj7z{Z)A!@;E43;a-yYqK2#;=Ie_`UeahjcYg!gcrh5{BA!~A;v zH60{KC>uGtT5~X(gagx$#2FV_HE}ccXlnk#XM!f+*pBhpQVlM8;ly;9KP?UvMm~&; zGiP&HtoY5}ba<;zo*b11<)?=brHz>3eTxsA8wY1L~rjyC1`DOsoRZ@^?E5GS@{M) zcdeBSz9obDhKoP(=E86BXQzY6IB^wQiOx3J4S)$5?1^d4QnQL`!94L957nf7sH;(;qH8-1V zS+XV(4?Z=NGr3oYipS7ub$Sw;qlET7cS2D=CaRPoHyq&km}MyG`~BFi3~qS1(i!Ao z!9cE)RT}=s`hH%~i~-v5Bqbo|n)vu84(`Y!W18+sc@!1S)b!4kEVWl?17|5TNpLkq!}D6%gGO(MCkhYlZiHPg#P51)MMwln&%xjH;R z{ne#M2y^|c4)}Y6j)(A{0e%VxALbBA%<2LP)h6t(5JWBRrCY~$%3Z!10DW#(A4_Q& zND)_mA|JNTc#(WJ!vJ(ejfih(@y`>LSNb_@G3BMAeEQf2!*c)Os;A4c6q>ss>h{q5 zw3TylsKKJ&iwPXi{MB8XU!Rj5ECz17o_7b!i&QiSKRP#z^JY6OYkD~PA7V-77GS%^ zQ^nkc%s10#on(-g^r%Rf-_5A8%;;EBxB8`o8&EKoLJ79R)pD@dr}&>sEAH9ZUwAlN zla!Hl1H6$G^|TO!j`+Wk{t9pjRM^pQBGN*bxNy(ZSHa8q3nNDzAT!bukP@o0ap=6N zw(F^R5kU3g;NZMweg5|5v?T0DLAdRKO*8?HD)h=y$-vb`8&!UtCE!iDOqmZkwKUAs z*Uk}r_!clf`t_(9&D)wG5bT8apDTGTBt8@gyR~ovGc-R6w$;VuWgxt}kNh^RD=>#} zs5vm&7-t!jE<=MtH(V~-n>zg?`DcLWyChj|URuSoRpF%@`=OiTCx@@~62|$8w(fWu zgSgGXG(Bsw)5|lf1mmR?u()`7$LN}l_|KnxZ^$nAC+tiYWn|qAVa`;!x0yK55R+s~ z)f+J~_X!P}=QUkjrSJW{PluWzbB`-@HV60vTi7k*(dAfwXA{bXL<#Vi3`;A%0AYV? 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 J1yA%o{U1|6LxKPR literal 0 HcmV?d00001 diff --git a/tutorials/pdw2023_demo.html b/tutorials/pdw2023_demo.html new file mode 100644 index 0000000..84747c4 --- /dev/null +++ b/tutorials/pdw2023_demo.html @@ -0,0 +1,4188 @@ + + + + + + + + + +planetarypy - Demo of PlanetaryPy + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ + +
+ + + +
+ +
+
+

Demo of PlanetaryPy

+
+ + + +
+ + + + +
+ + + +
+ + + +
+
import planetarypy as plpy
+
+
+
plpy.__version__
+
+
'0.30.0'
+
+
+
+
from planetarypy.pds.apps import get_index, find_indexes
+
+
+
!head -n 50 $HOME/.planetarypy_config.toml
+
+
storage_root = "/home/ayek72/mnt/slowdata/planetarypy"
+
+[missions.cassini.iss.indexes.index]
+# 'index' is the ID of the originally delivered index
+# inventory, moon_summary, ring_summary, and saturn_summary are other indexes produced
+# by the Rings-Moons Systems PDS node
+url = "https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_index.lbl"
+timestamp = "2021-02-21T15:55:27"
+
+[missions.cassini.iss.indexes.inventory]
+url = "https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_inventory.lbl"
+
+[missions.cassini.iss.indexes.moon_summary]
+url = "https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_moon_summary.lbl"
+timestamp = "2019-06-08T16:28:22"
+
+[missions.cassini.iss.indexes.ring_summary]
+url = "https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_ring_summary.lbl"
+timestamp = "2022-08-08T11:54:51.140376"
+
+[missions.cassini.iss.indexes.saturn_summary]
+url = "https://pds-rings.seti.org/holdings/metadata/COISS_2xxx/COISS_2999/COISS_2999_saturn_summary.lbl"
+timestamp = "2022-12-21T18:10:29.248055"
+
+
+[missions.cassini.uvis.indexes.index]
+url = "https://pds-rings.seti.org/holdings/metadata/COUVIS_0xxx/COUVIS_0999/COUVIS_0999_index.lbl"
+timestamp = "2022-09-01T14:14:10.014705"
+
+[missions.cassini.uvis.indexes.moon_summary]
+url = "https://pds-rings.seti.org/holdings/metadata/COUVIS_0xxx/COUVIS_0999/COUVIS_0999_moon_summary.lbl"
+
+[missions.cassini.uvis.indexes.ring_summary]
+url = "https://pds-rings.seti.org/holdings/metadata/COUVIS_0xxx/COUVIS_0999/COUVIS_0999_ring_summary.lbl"
+timestamp = "2022-08-08T11:53:16.071844"
+
+[missions.cassini.uvis.indexes.saturn_summary]
+url = "https://pds-rings.seti.org/holdings/metadata/COUVIS_0xxx/COUVIS_0999/COUVIS_0999_saturn_summary.lbl"
+
+[missions.cassini.uvis.indexes.supplemental_index]
+url = "https://pds-rings.seti.org/holdings/metadata/COUVIS_0xxx/COUVIS_0999/COUVIS_0999_supplemental_index.lbl"
+
+[missions.cassini.uvis.indexes.versions]
+url = "https://pds-rings.seti.org/holdings/metadata/COUVIS_0xxx/COUVIS_0999/COUVIS_0999_versions.lbl"
+
+
+
+[missions.mro.hirise.indexes.dtm]
+url = "https://hirise-pds.lpl.arizona.edu/PDS/INDEX/DTMCUMINDEX.LBL"
+
+
+
+
+
find_indexes("cassini.iss")
+
+
['index', 'inventory', 'moon_summary', 'ring_summary', 'saturn_summary']
+
+
+
+
find_indexes("cassini.uvis")
+
+
['index',
+ 'moon_summary',
+ 'ring_summary',
+ 'saturn_summary',
+ 'supplemental_index',
+ 'versions']
+
+
+
+
df = get_index("cassini.iss.index")
+df.head()
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FILE_NAMEFILE_SPECIFICATION_NAMEVOLUME_IDANTIBLOOMING_STATE_FLAGBIAS_STRIP_MEANCALIBRATION_LAMP_STATE_FLAGCOMMAND_FILE_NAMECOMMAND_SEQUENCE_NUMBERDARK_STRIP_MEANDATA_CONVERSION_TYPE...TWIST_ANGLETARGET_LISTUPPER_LEFT_LATITUDEUPPER_LEFT_LONGITUDEUPPER_RIGHT_LATITUDEUPPER_RIGHT_LONGITUDEDATA_SET_NAMEINSTRUMENT_HOST_IDPRODUCT_TYPESTANDARD_DATA_PRODUCT_ID
0N1454725799_1.IMGdata/1454725799_1455008789/N1454725799_1.IMGCOISS_2001OFF14.869863<NA>OPNAV_848_3.ioi80.012BIT...89.513591S2_2004,HELENE,TELESTO,RHEA-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0CASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...COEDRISS_EDR
1N1454726579_1.IMGdata/1454725799_1455008789/N1454726579_1.IMGCOISS_2001OFF14.860078<NA>OPNAV_864_3.ioi80.012BIT...89.647635TITAN-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0CASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...COEDRISS_EDR
2N1454727359_1.IMGdata/1454725799_1455008789/N1454727359_1.IMGCOISS_2001OFF14.87867<NA>OPNAV_880_3.ioi80.012BIT...89.679084HYPERION-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0CASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...COEDRISS_EDR
3N1454728139_1.IMGdata/1454725799_1455008789/N1454728139_1.IMGCOISS_2001OFF14.842465<NA>OPNAV_912_3.ioi80.012BIT...88.677516PHOEBE-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0CASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...COEDRISS_EDR
4N1454728919_1.IMGdata/1454725799_1455008789/N1454728919_1.IMGCOISS_2001OFF14.86497<NA>OPNAV_896_3.ioi80.012BIT...89.79891IAPETUS-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0CASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...COEDRISS_EDR
+ +

5 rows × 140 columns

+
+
+
+
+
+
df.columns
+
+
Index(['FILE_NAME', 'FILE_SPECIFICATION_NAME', 'VOLUME_ID',
+       'ANTIBLOOMING_STATE_FLAG', 'BIAS_STRIP_MEAN',
+       'CALIBRATION_LAMP_STATE_FLAG', 'COMMAND_FILE_NAME',
+       'COMMAND_SEQUENCE_NUMBER', 'DARK_STRIP_MEAN', 'DATA_CONVERSION_TYPE',
+       ...
+       'TWIST_ANGLE', 'TARGET_LIST', 'UPPER_LEFT_LATITUDE',
+       'UPPER_LEFT_LONGITUDE', 'UPPER_RIGHT_LATITUDE', 'UPPER_RIGHT_LONGITUDE',
+       'DATA_SET_NAME', 'INSTRUMENT_HOST_ID', 'PRODUCT_TYPE',
+       'STANDARD_DATA_PRODUCT_ID'],
+      dtype='object', length=140)
+
+
+
+
df.set_index("IMAGE_MID_TIME").loc['20170914 00':'20170914 15']
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FILE_NAMEFILE_SPECIFICATION_NAMEVOLUME_IDANTIBLOOMING_STATE_FLAGBIAS_STRIP_MEANCALIBRATION_LAMP_STATE_FLAGCOMMAND_FILE_NAMECOMMAND_SEQUENCE_NUMBERDARK_STRIP_MEANDATA_CONVERSION_TYPE...TWIST_ANGLETARGET_LISTUPPER_LEFT_LATITUDEUPPER_LEFT_LONGITUDEUPPER_RIGHT_LATITUDEUPPER_RIGHT_LONGITUDEDATA_SET_NAMEINSTRUMENT_HOST_IDPRODUCT_TYPESTANDARD_DATA_PRODUCT_ID
IMAGE_MID_TIME
2017-09-14 13:26:59.927N1884091007_1.IMGdata/1884017637_1884113741/N1884091007_1.IMGCOISS_2116OFF21.611872<NA>trigger_25245_3.ioi252451.21844412BIT...4.868274<NA>-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0CASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...COEDRISS_EDR
2017-09-14 13:31:18.910N1884091266_1.IMGdata/1884017637_1884113741/N1884091266_1.IMGCOISS_2116OFF21.594259<NA>trigger_25245_3.ioi252451.22223612BIT...4.812541<NA>-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0CASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...COEDRISS_EDR
2017-09-14 13:35:41.908N1884091529_1.IMGdata/1884017637_1884113741/N1884091529_1.IMGCOISS_2116OFF21.87019<NA>trigger_25245_3.ioi252451.22957412BIT...4.77302DAPHNIS-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0CASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...COEDRISS_EDR
2017-09-14 13:40:04.906N1884091792_1.IMGdata/1884017637_1884113741/N1884091792_1.IMGCOISS_2116OFF21.843445<NA>trigger_25245_3.ioi252451.25403612BIT...4.748047<NA>-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0CASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...COEDRISS_EDR
2017-09-14 13:44:27.905N1884092055_1.IMGdata/1884017637_1884113741/N1884092055_1.IMGCOISS_2116OFF21.885845<NA>trigger_25245_3.ioi252451.26320912BIT...4.736484<NA>-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0CASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...COEDRISS_EDR
2017-09-14 13:48:50.903N1884092318_1.IMGdata/1884017637_1884113741/N1884092318_1.IMGCOISS_2116OFF21.558872<NA>trigger_25245_3.ioi252451.26002912BIT...4.737905<NA>-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0CASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...COEDRISS_EDR
2017-09-14 13:53:13.901N1884092581_1.IMGdata/1884017637_1884113741/N1884092581_1.IMGCOISS_2116OFF21.606491<NA>trigger_25245_3.ioi252451.24828812BIT...4.750201<NA>-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0-100000000000000005366162204393472.0CASSINI ORBITER SATURN ISSNA/ISSWA 2 EDR VERSI...COEDRISS_EDR
+ +

7 rows × 139 columns

+
+
+
+
+
+

Cassini ISS

+
+
from planetarypy.ciss import ISS
+
+
+
iss = ISS("N1884091529_1")
+
+
Found 1 obsids.
+
+
+
+
iss.download_raw()
+
+
File exists. Use `overwrite=True` to download fresh.
+
+
+
+
iss.local_label_path
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/missions/cassini/iss/N1884091529_1/N1884091529_1.LBL')
+
+
+
+
import pdr
+
+
+
do = pdr.open(iss.local_data_path)
+
+
+
type(do)
+
+
pdr.pdr.Data
+
+
+
+
do.read_metadata()['IMAGE_MID_TIME']
+
+
'2017-257T13:35:41.908'
+
+
+
+
do.show("IMAGE")
+
+
+
+

+
+
+
+
+
+
+

CTX

+
+
from planetarypy.ctx import CTX
+
+
+
edrs = get_index('mro.ctx.edr', refresh=True)
+
+ +
+
+ +
+
+
Downloaded /home/ayek72/mnt/slowdata/planetarypy/missions/mro/ctx/indexes/edr/cumindex.lbl and /home/ayek72/mnt/slowdata/planetarypy/missions/mro/ctx/indexes/edr/cumindex.tab
+Done.
+An updated index is available. Downloading...
+
+
+
+
edrs.tail()
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDFILE_SPECIFICATION_NAMEORIGINAL_PRODUCT_IDPRODUCT_IDIMAGE_TIMEINSTRUMENT_IDINSTRUMENT_MODE_IDLINE_SAMPLESLINESSPATIAL_SUMMING...SUB_SOLAR_LATITUDESUB_SPACECRAFT_LONGITUDESUB_SPACECRAFT_LATITUDESOLAR_DISTANCESOLAR_LONGITUDELOCAL_TIMEIMAGE_SKEW_ANGLERATIONALE_DESCDATA_QUALITY_DESCORBIT_NUMBER
145081MROX_4759DATA/U20_078960_2636_XN_83N240W.IMG4A_04_1190031700U20_078960_2636_XN_83N240W2023-05-31 21:52:13.062CTXNIFL505671681...24.07239.7483.7249218523.371.5713.790.0Ride-along with HiRISEOK78960
145082MROX_4759DATA/U20_078961_1433_XI_36S229W.IMG4A_04_1191031800U20_078961_1433_XI_36S229W2023-05-31 23:06:16.597CTXITL5056235521...24.07231.42-36.98249219468.271.5915.6290.2Pursat Crater and terrain to the northOK78961
145083MROX_4759DATA/U20_078961_1778_XN_02S236W.IMG4A_04_1190031900U20_078961_1778_XN_02S236W2023-05-31 23:16:31.929CTXNIFL5056522241...24.07235.91-2.19249218165.171.615.3490.1Northern Terra CimmeriaOK78961
145084MROX_4759DATA/U20_078961_2113_XN_31N239W.IMG4A_04_1190031A00U20_078961_2113_XN_31N239W2023-05-31 23:27:38.765CTXNIFL377671681...24.08240.1531.33249217646.671.615.2990.0Ride-along with HiRISEOK78961
145085MROX_4759DATA/U20_078961_2609_XN_80N259W.IMG4A_04_1190031B00U20_078961_2609_XN_80N259W2023-05-31 23:43:31.515CTXNIFL377671681...24.08259.3981.01249218307.871.6114.2289.9Ride-along with HiRISEOK78961
+ +

5 rows × 51 columns

+
+
+
+
+
+
pid = "U08_074276_1370_XI_43S133W"
+
+
+
ctx = CTX(pid)
+
+
+
ctx.download()
+
+
File exists. Use `overwrite=True` to download fresh.
+
+
+
+
ctx.meta
+
+
volume_id                                                 MROX_4238
+file_specification_name         DATA/U08_074276_1370_XI_43S133W.IMG
+original_product_id                                4A_04_1179029700
+product_id                               U08_074276_1370_XI_43S133W
+image_time                               2022-05-31 22:06:07.945000
+instrument_id                                                   CTX
+instrument_mode_id                                              ITL
+line_samples                                                   5056
+lines                                                         49152
+spatial_summing                                                   1
+scaled_pixel_width                                             5.13
+pixel_aspect_ratio                                             1.18
+emission_angle                                                 5.34
+incidence_angle                                               50.01
+phase_angle                                                   55.16
+center_longitude                                             133.38
+center_latitude                                              -43.14
+upper_left_longitude                                          133.3
+upper_left_latitude                                          -45.66
+upper_right_longitude                                        132.68
+upper_right_latitude                                         -45.61
+lower_left_longitude                                         134.04
+lower_left_latitude                                          -40.68
+lower_right_longitude                                        133.48
+lower_right_latitude                                         -40.63
+mission_phase_name                                              ESP
+target_name                                                    MARS
+spacecraft_clock_start_count                         1338502024:229
+focal_plane_temperature                                       294.5
+line_exposure_duration                                        1.877
+offset_mode_id                                          196/215/209
+sample_first_pixel                                                0
+scaled_image_width                                            25.66
+scaled_image_height                                          297.15
+spacecraft_altitude                                          254.75
+target_center_distance                                      3641.68
+slant_distance                                               255.78
+usage_note                                                        N
+north_azimuth                                                276.51
+sub_solar_azimuth                                             194.3
+sub_solar_longitude                                          187.84
+sub_solar_latitude                                           -21.42
+sub_spacecraft_longitude                                     132.87
+sub_spacecraft_latitude                                      -43.09
+solar_distance                                          207097154.5
+solar_longitude                                              238.12
+local_time                                                    15.62
+image_skew_angle                                               90.4
+rationale_desc                           Landforms in Terra Sirenum
+data_quality_desc                                                OK
+orbit_number                                                  74276
+short_pid                                           U08_074276_1370
+month_col                                                       U08
+Name: 132419, dtype: object
+
+
+
+
ctx.edr_da
+
+
+ + + + + + + + + + + + + + +
<xarray.DataArray 'U08_074276_1370 EDR' (y: 49152, x: 5056)>
+[248512512 values with dtype=uint8]
+Coordinates:
+  * x        (x) float64 0.5 1.5 2.5 3.5 ... 5.054e+03 5.054e+03 5.056e+03
+  * y        (y) float64 0.5 1.5 2.5 3.5 ... 4.915e+04 4.915e+04 4.915e+04
+Attributes: (12/19)
+    BANDWIDTH:                  
+    CENTER_FILTER_WAVELENGTH:   
+    DATA_SET_ID:                "MRO-M-CTX-2-EDR-L0-V1.0"
+    FILTER_NAME:                
+    INSTRUMENT_ID:              CTX
+    INSTRUMENT_NAME:            "CONTEXT CAMERA"
+    ...                         ...
+    START_TIME:                 2022-05-31T22:06:07.945
+    STOP_TIME:                  2022-05-31T22:07:40.191
+    TARGET_NAME:                MARS
+    _FillValue:                 0
+    scale_factor:               1.0
+    add_offset:                 0.0
+
+
+
+
!gdalinfo {ctx.source_path}
+
+
Driver: PDS/NASA Planetary Data System
+Files: /remote/trove/geo/planet/Mars/CTX/pds/mrox_4238/U08_074276_1370_XI_43S133W.IMG
+Size is 5056, 49152
+Metadata:
+  BANDWIDTH=
+  CENTER_FILTER_WAVELENGTH=
+  DATA_SET_ID="MRO-M-CTX-2-EDR-L0-V1.0"
+  FILTER_NAME=
+  INSTRUMENT_ID=CTX
+  INSTRUMENT_NAME="CONTEXT CAMERA"
+  MISSION_NAME=
+  NOTE=
+  PRODUCER_INSTITUTION_NAME=
+  PRODUCT_CREATION_TIME=2022-11-04T18:18:50
+  PRODUCT_ID="U08_074276_1370_XI_43S133W"
+  PRODUCT_TYPE=
+  SPACECRAFT_NAME=MARS_RECONNAISSANCE_ORBITER
+  START_TIME=2022-05-31T22:06:07.945
+  STOP_TIME=2022-05-31T22:07:40.191
+  TARGET_NAME=MARS
+Corner Coordinates:
+Upper Left  (    0.0,    0.0)
+Lower Left  (    0.0,49152.0)
+Upper Right ( 5056.0,    0.0)
+Lower Right ( 5056.0,49152.0)
+Center      ( 2528.0,24576.0)
+Band 1 Block=5056x1 Type=Byte, ColorInterp=Undefined
+  NoData Value=0
+
+
+
+
ctx.plot_edr()
+
+ +
+
+
+
+
+ +
+
+
+
ctx.edr_da
+
+
+ + + + + + + + + + + + + + +
<xarray.DataArray 'U08_074276_1370 EDR' (y: 49152, x: 5056)>
+[248512512 values with dtype=uint8]
+Coordinates:
+  * x        (x) float64 0.5 1.5 2.5 3.5 ... 5.054e+03 5.054e+03 5.056e+03
+  * y        (y) float64 0.5 1.5 2.5 3.5 ... 4.915e+04 4.915e+04 4.915e+04
+Attributes: (12/19)
+    BANDWIDTH:                  
+    CENTER_FILTER_WAVELENGTH:   
+    DATA_SET_ID:                "MRO-M-CTX-2-EDR-L0-V1.0"
+    FILTER_NAME:                
+    INSTRUMENT_ID:              CTX
+    INSTRUMENT_NAME:            "CONTEXT CAMERA"
+    ...                         ...
+    START_TIME:                 2022-05-31T22:06:07.945
+    STOP_TIME:                  2022-05-31T22:07:40.191
+    TARGET_NAME:                MARS
+    _FillValue:                 0
+    scale_factor:               1.0
+    add_offset:                 0.0
+
+
+
+
from planetarypy.hirise import RGB_NOMAP
+
+ +
+
+ +
+
+ +
+
+
+
+
+ +
+
+
+
obsid = "ESP_039983_1390"
+
+
+
rgb = RGB_NOMAP(obsid)
+
+
+
rgb.download()
+
+
File exists. Use `overwrite=True` to download fresh.
+
+
+
+
rgb.url
+
+
URL('https://hirise-pds.lpl.arizona.edu/PDS/EXTRAS/RDR/ESP/ORB_039900_039999/ESP_039983_1390/ESP_039983_1390_RGB.NOMAP.JP2')
+
+
+
+
rgb.download()
+
+
File exists. Use `overwrite=True` to download fresh.
+
+
+
+
rgb.read()
+
+
+
+ + + + + + + + + + + + + + +
<xarray.DataArray (band: 3, y: 20000, x: 2024)>
+dask.array<open_rasterio-50355e7d99e2af88a185d9da4643f0cc<this-array>, shape=(3, 20000, 2024), dtype=uint16, chunksize=(1, 2024, 2024), chunktype=numpy.ndarray>
+Coordinates:
+  * band         (band) int64 1 2 3
+  * x            (x) float64 0.5 1.5 2.5 3.5 ... 2.022e+03 2.022e+03 2.024e+03
+  * y            (y) float64 0.5 1.5 2.5 3.5 4.5 ... 2e+04 2e+04 2e+04 2e+04
+    spatial_ref  int64 0
+Attributes:
+    scale_factor:  1.0
+    add_offset:    0.0
+
+
+
+
+
+

SPICE

+
+

Archived kernels

+
+
from planetarypy.spice import kernels
+
+
+
kernels.datasets
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
pathMission NamePDS3 or PDS4Data Size (GB)Start TimeStop Time
shorthand
bcbc/bc_spiceBepiColombo42.32018-10-202023-06-21
cassinico-s_j_e_v-spice-6-v1.0/cosp_1000Cassini Orbiter362.51997-10-152017-09-15
clementineclem1-l-spice-6-v1.0/clsp_1000Clementine30.81994-01-261994-05-07
dartdart/dart_spiceDART410.02021-11-092050-01-01
dawndawn-m_a-spice-6-v1.0/dawnsp_1000DAWN386.42007-09-272018-10-31
didi-c-spice-6-v1.0/disp_1000Deep Impact30.72005-01-122005-08-09
ds1ds1-a_c-spice-6-v1.0/ds1sp_1000Deep Space 130.91998-10-242001-12-18
epoxidif-c_e_x-spice-6-v1.0/epxsp_1000EPOXI31.02005-08-232011-03-01
em16em16/em16_spiceExoMars TGO 2016410.42016-03-142023-10-01
grailgrail-l-spice-6-v1.0/grlsp_1000GRAIL34.32011-09-102012-12-17
hayabusahay-a-spice-6-v1.0/haysp_1000Hayabusa30.32005-09-112005-11-19
insightinsight/insight_spiceInSight40.92018-05-052022-12-15
junojno-j_e_ss-spice-6-v1.0/jnosp_1000JUNO348.22011-08-052023-04-08
ladeeladee/ladee_spiceLADEE40.62013-09-072050-01-01
lrolro-l-spice-6-v1.0/lrosp_1000Lunar Reconnaissance Orbiter3616.92009-06-182023-09-15
mavenmaven/maven_spiceMAVEN456.62013-11-182023-10-01
opportunitymer1-m-spice-6-v1.0/mer1sp_1000MER 1 (Opportunity)34.12003-07-072018-06-10
spiritmer2-m-spice-6-v1.0/mer2sp_1000MER 2 (Spirit)32.62003-06-102010-05-03
messengermess-e_v_h-spice-6-v1.0/messsp_1000MESSENGER344.82004-08-032015-04-30
mars2020mars2020/mars2020_spiceMars 202040.62020-07-302023-08-31
mexmex-e_m-spice-6-v2.0/mexsp_2000Mars Express310.62003-06-022023-08-31
mgsmgs-m-spice-6-v1.0/mgsp_1000Mars Global Surveyor315.41996-11-062006-11-02
odyody-m-spice-6-v1.0/odsp_1000Mars Odyssey335.22001-04-072023-07-01
mromro-m-spice-6-v1.0/mrosp_1000Mars Reconnaissance Orbiter3324.72005-08-122023-10-01
mslmsl-m-spice-6-v1.0/mslsp_1000Mars Science Laboratory30.62011-11-262023-07-29
nearnear-a-spice-6-v1.0/nearsp_1000NEAR32.41996-05-302001-02-28
nhnh-j_p_ss-spice-6-v1.0/nhsp_1000New Horizons31.62006-01-192019-12-30
orexorex/orex_spiceOSIRIS-REx4424.72016-09-082023-10-02
rosettaro_rl-e_m_a_c-spice-6-v1.0/rossp_1000Rosetta35.92004-03-022017-01-01
stardustsdu-c-spice-6-v1.0/sdsp_1000Stardust31.91999-02-072011-05-01
venus_climate_orbitervco/vco_spiceVenus Climate Orbiter41.92010-05-212023-01-01
vexvex-e_v-spice-6-v2.0/vexsp_2000Venus Express35.02005-11-092015-02-06
vovo1_vo2-m-spice-6-v1.0/vosp_1000Viking Orbiter30.11976-06-161980-07-30
+ +
+
+
+
+
+
kernels.list_kernels_for_day('bc', '2019-01-01')
+
+
['ck/bc_mmo_sc_cruise_v01.bc',
+ 'ck/bc_mpo_magboom_v01.bc',
+ 'ck/bc_mtm_sc_cruise_v01.bc',
+ 'fk/bc_dsk_surfaces_v03.tf',
+ 'fk/bc_mmo_v13.tf',
+ 'fk/bc_mpo_v34.tf',
+ 'fk/bc_mtm_v12.tf',
+ 'fk/bc_sci_v12.tf',
+ 'fk/earth_topo_201023.tf',
+ 'fk/earthstns_jaxa_20230905.tf',
+ 'fk/estrack_v04.tf',
+ 'fk/rssd0002.tf',
+ 'ik/bc_mmo_mppe_v04.ti',
+ 'ik/bc_mmo_msasi_v03.ti',
+ 'ik/bc_mpo_aux_v01.ti',
+ 'ik/bc_mpo_bela_v09.ti',
+ 'ik/bc_mpo_mertis_v08.ti',
+ 'ik/bc_mpo_mgns_v02.ti',
+ 'ik/bc_mpo_mixs_v06.ti',
+ 'ik/bc_mpo_phebus_v06.ti',
+ 'ik/bc_mpo_serena_v08.ti',
+ 'ik/bc_mpo_simbio-sys_v10.ti',
+ 'ik/bc_mpo_sixs_v08.ti',
+ 'ik/bc_mpo_str_v02.ti',
+ 'ik/bc_mtm_mcam_v05.ti',
+ 'lsk/naif0012.tls',
+ 'pck/earth_000101_231220_230927.bpc',
+ 'pck/gm_de431.tpc',
+ 'pck/pck00011_bc_v00.tpc',
+ 'sclk/bc_mmo_fict_20170228.tsc',
+ 'sclk/bc_mpo_fict_20181127.tsc',
+ 'sclk/bc_mpo_step_20230917.tsc',
+ 'spk/bc_mmo_cruise_v01.bsp',
+ 'spk/bc_mmo_struct_v01.bsp',
+ 'spk/bc_mpo_cog_v03.bsp',
+ 'spk/bc_mpo_struct_v09.bsp',
+ 'spk/bc_mtm_cruise_v01.bsp',
+ 'spk/bc_mtm_struct_v06.bsp',
+ 'spk/bc_sci_v02.bsp',
+ 'spk/de432s.bsp',
+ 'spk/earthstns_itrf93_201023.bsp',
+ 'spk/earthstns_jaxa_20230905.bsp',
+ 'spk/estrack_v04.bsp']
+
+
+
+
mkpath = kernels.get_metakernel_and_files('msl', '2020-01-01', '2020-01-05')
+
+ +
+
+
msl_ra_toolsref_v1.bc:   0%|          | 0/18432 [00:00<?, ?it/s]
+msl_v08.tf:   0%|          | 0/205622 [00:00<?, ?it/s]/325632 [00:00<?, ?it/s]
+msl_surf_rsm_tlmenc_2579_2713_v1.bc:   0%|          | 0/4276224 [00:00<?, ?it/s][A
+msl_surf_hga_tlm_2579_2713_v1.bc:   0%|          | 0/2271232 [00:00<?, ?it/s]
+msl_ra_toolsref_v1.bc: 100%|██████████| 18.0k/18.0k [00:00<00:00, 118kB/s] it/s]
+msl_surf_rsm_tlmenc_2579_2713_v1.bc:   0%|          | 4.00k/4.08M [00:00<02:40, 26.6kB/s]
+msl_surf_ra_tlmres_2579_2713_v1.bc:   0%|          | 4.00k/1.86M [00:00<01:14, 26.0kB/s]
+
+msl_surf_rover_tlm_2579_2713_v1.bc:   1%|▏         | 4.00k/318k [00:00<00:12, 25.1kB/s][A
+msl_surf_rsm_tlmenc_2579_2713_v1.bc:   1%|          | 36.0k/4.08M [00:00<00:31, 133kB/s] 
+msl_surf_ra_tlmres_2579_2713_v1.bc:   2%|▏         | 36.0k/1.86M [00:00<00:14, 132kB/s] 
+msl_surf_rover_tlm_2579_2713_v1.bc:  11%|█▏        | 36.0k/318k [00:00<00:02, 131kB/s] 
+msl_surf_rsm_tlmres_2579_2713_v1.bc:   1%|          | 36.0k/3.56M [00:00<00:28, 131kB/s] 
+msl_surf_rsm_tlmenc_2579_2713_v1.bc:   2%|▏         | 100k/4.08M [00:00<00:16, 260kB/s] A
+msl_surf_ra_tlmres_2579_2713_v1.bc:   5%|▌         | 100k/1.86M [00:00<00:07, 259kB/s] 
+msl_surf_rover_tlm_2579_2713_v1.bc:  31%|███▏      | 100k/318k [00:00<00:00, 258kB/s] 
+msl_surf_rsm_tlmres_2579_2713_v1.bc:   3%|▎         | 100k/3.56M [00:00<00:14, 258kB/s] 
+msl_v08.tf: 100%|██████████| 201k/201k [00:00<00:00, 398kB/s] [00:00<00:08, 257kB/s] 
+msl_surf_ra_tlmenc_2579_2713_v1.bc:   7%|▋         | 212k/3.13M [00:00<00:06, 440kB/s]]
+msl_surf_ra_tlmres_2579_2713_v1.bc:  11%|█         | 212k/1.86M [00:00<00:03, 440kB/s]
+msl_surf_rover_tlm_2579_2713_v1.bc:  62%|██████▏   | 196k/318k [00:00<00:00, 399kB/s]
+msl_surf_rover_tlm_2579_2713_v1.bc: 100%|██████████| 318k/318k [00:00<00:00, 503kB/s]s]
+
+msl_surf_rsm_tlmenc_2579_2713_v1.bc:  10%|█         | 436k/4.08M [00:00<00:04, 800kB/s]
+msl_surf_ra_tlmres_2579_2713_v1.bc:  23%|██▎       | 436k/1.86M [00:00<00:01, 799kB/s]
+msl_surf_rsm_tlmres_2579_2713_v1.bc:  12%|█▏        | 436k/3.56M [00:00<00:04, 798kB/s]
+msl_hbra_20120731_c03.ti: 100%|██████████| 7.77k/7.77k [00:00<00:00, 15.7MB/s]6kB/s]
+msl_surf_rsm_tlmenc_2579_2713_v1.bc:  21%|██        | 884k/4.08M [00:00<00:02, 1.51MB/s]
+msl_surf_ra_tlmres_2579_2713_v1.bc:  46%|████▋     | 884k/1.86M [00:00<00:00, 1.50MB/s]
+msl_surf_rsm_tlmres_2579_2713_v1.bc:  24%|██▍       | 884k/3.56M [00:00<00:01, 1.50MB/s]
+msl_surf_rsm_tlmenc_2579_2713_v1.bc:  43%|████▎     | 1.74M/4.08M [00:01<00:00, 2.89MB/s]
+msl_surf_ra_tlmres_2579_2713_v1.bc: 100%|██████████| 1.86M/1.86M [00:01<00:00, 1.74MB/s]
+
+msl_surf_rsm_tlmres_2579_2713_v1.bc:  49%|████▉     | 1.74M/3.56M [00:01<00:00, 2.88MB/s]
+msl_surf_hga_tlm_2579_2713_v1.bc: 100%|██████████| 2.17M/2.17M [00:01<00:00, 1.98MB/s]
+msl_surf_ra_tlmenc_2579_2713_v1.bc: 100%|██████████| 3.13M/3.13M [00:01<00:00, 2.81MB/s]
+msl_hflb_20120731_c03.ti: 100%|██████████| 7.77k/7.77k [00:00<00:00, 13.2MB/s]
+msl_surf_rsm_tlmenc_2579_2713_v1.bc:  86%|████████▌ | 3.49M/4.08M [00:01<00:00, 5.62MB/s]
+msl_surf_rsm_tlmres_2579_2713_v1.bc: 100%|██████████| 3.56M/3.56M [00:01<00:00, 2.91MB/s]
+
+msl_aux_v00.ti: 100%|██████████| 11.3k/11.3k [00:00<00:00, 29.3MB/s]
+msl_hfra_20120731_c03.ti: 100%|██████████| 7.77k/7.77k [00:00<00:00, 13.2MB/s]
+msl_hblb_20120731_c03.ti: 100%|██████████| 7.76k/7.76k [00:00<00:00, 4.88MB/s]
+msl_hbrb_20120731_c03.ti: 100%|██████████| 7.77k/7.77k [00:00<00:00, 14.4MB/s]
+msl_hfla_20120731_c03.ti: 100%|██████████| 7.77k/7.77k [00:00<00:00, 14.0MB/s]
+msl_mahli_20120731_c02.ti: 100%|██████████| 7.70k/7.70k [00:00<00:00, 14.0MB/s]
+msl_chrmi_20120731_c03.ti: 100%|██████████| 7.38k/7.38k [00:00<00:00, 13.2MB/s]
+msl_hbla_20120731_c03.ti: 100%|██████████| 7.76k/7.76k [00:00<00:00, 14.0MB/s]
+msl_hfrb_20120731_c03.ti: 100%|██████████| 7.77k/7.77k [00:00<00:00, 13.9MB/s]
+msl_nla_20120731_c04.ti: 100%|██████████| 7.70k/7.70k [00:00<00:00, 19.9MB/s]
+msl_mardi_20120731_c02.ti: 100%|██████████| 7.62k/7.62k [00:00<00:00, 13.4MB/s]
+msl_ml_20120731_c03.ti: 100%|██████████| 7.72k/7.72k [00:00<00:00, 15.9MB/s]
+msl_mr_20120731_c03.ti: 100%|██████████| 7.72k/7.72k [00:00<00:00, 4.39MB/s]
+msl_nra_20120731_c04.ti: 100%|██████████| 7.71k/7.71k [00:00<00:00, 14.6MB/s]
+msl_nrb_20130530_c05.ti: 100%|██████████| 7.72k/7.72k [00:00<00:00, 13.9MB/s]
+msl_struct_v01.ti: 100%|██████████| 10.3k/10.3k [00:00<00:00, 16.9MB/s]
+msl_nlb_20130530_c05.ti: 100%|██████████| 7.72k/7.72k [00:00<00:00, 22.5MB/s]
+msl_lmst_ops120808_v1.tsc: 100%|██████████| 5.80k/5.80k [00:00<00:00, 13.8MB/s]
+naif0012.tls: 100%|██████████| 6.70k/6.70k [00:00<00:00, 9.87MB/s]
+mar085s.bsp:   0%|          | 0/89539584 [00:00<?, ?it/s]0:00<?, ?it/s]
+msl_ls_ops120808_iau2000_v1.bsp: 100%|██████████| 8.00k/8.00k [00:00<00:00, 15.9MB/s]
+
+mar085s.bsp:   0%|          | 4.00k/85.4M [00:00<58:05, 25.7kB/s]<00:02, 25.6kB/s]
+msl_76_sclkscet_refit_s8.tsc: 100%|██████████| 55.7k/55.7k [00:00<00:00, 178kB/s] 
+mar085s.bsp:   0%|          | 36.0k/85.4M [00:00<11:22, 131kB/s] 
+msl_surf_rover_loc_2224_2358_v1.bsp:   0%|          | 0/256000 [00:00<?, ?it/s]
+pck00008.tpc: 100%|██████████| 111k/111k [00:00<00:00, 236kB/s] 1kB/s] 
+mar085s.bsp:   0%|          | 84.0k/85.4M [00:00<07:02, 212kB/s]
+msl_surf_rover_loc_2224_2358_v1.bsp:   2%|▏         | 4.00k/250k [00:00<00:09, 25.6kB/s]
+msl_struct_v02.bsp: 100%|██████████| 102k/102k [00:00<00:00, 217kB/s] 
+de425s.bsp:   1%|          | 100k/8.84M [00:00<00:35, 259kB/s] 
+mar085s.bsp:   0%|          | 196k/85.4M [00:00<03:37, 411kB/s] [00:00<?, ?it/s]
+msl_surf_rover_loc_2003_2127_v1.bsp:   0%|          | 0/344064 [00:00<?, ?it/s]131kB/s] 
+mar085s.bsp:   0%|          | 420k/85.4M [00:00<01:54, 780kB/s]9M [00:00<01:45, 25.7kB/s]
+msl_surf_rover_loc_2003_2127_v1.bsp:   1%|          | 4.00k/336k [00:00<00:13, 25.7kB/s][A
+msl_surf_rover_loc_0000_2003_v1.bsp:   1%|▏         | 36.0k/2.59M [00:00<00:20, 131kB/s] 
+mar085s.bsp:   1%|          | 852k/85.4M [00:00<01:00, 1.45MB/s]00:00<?, ?it/s]
+msl_surf_rover_loc_2224_2358_v1.bsp: 100%|██████████| 250k/250k [00:00<00:00, 399kB/s] 
+msl_surf_rover_loc_2003_2127_v1.bsp:  11%|█         | 36.0k/336k [00:00<00:02, 131kB/s] 
+msl_surf_rover_loc_0000_2003_v1.bsp:   3%|▎         | 84.0k/2.59M [00:00<00:12, 212kB/s]
+msl_surf_rover_loc_2003_2127_v1.bsp:  25%|██▌       | 84.0k/336k [00:00<00:01, 211kB/s]]
+msl_surf_rover_loc_2837_2934_v1.bsp:   0%|          | 0/225280 [00:00<?, ?it/s]
+msl_surf_rover_loc_0000_2003_v1.bsp:   7%|▋         | 180k/2.59M [00:00<00:06, 371kB/s] 
+msl_surf_rover_loc_2003_2127_v1.bsp:  49%|████▉     | 164k/336k [00:00<00:00, 330kB/s] ]
+msl_surf_rover_loc_2837_2934_v1.bsp:   2%|▏         | 4.00k/220k [00:00<00:08, 25.3kB/s]
+msl_surf_rover_loc_2003_2127_v1.bsp: 100%|██████████| 336k/336k [00:00<00:00, 524kB/s]]
+
+de425s.bsp:  72%|███████▏  | 6.36M/8.84M [00:01<00:00, 9.82MB/s] [00:00<00:01, 131kB/s] [A
+msl_surf_rover_loc_2837_2934_v1.bsp:  16%|█▋        | 36.0k/220k [00:00<00:01, 130kB/s] 
+msl_surf_rover_loc_0000_2003_v1.bsp:  29%|██▉       | 772k/2.59M [00:00<00:01, 1.32MB/s]
+msl_surf_rover_loc_2579_2713_v1.bsp: 100%|██████████| 294k/294k [00:00<00:00, 468kB/s] 
+de425s.bsp: 100%|██████████| 8.84M/8.84M [00:01<00:00, 6.16MB/s] [00:00<00:00, 211kB/s]
+mar085s.bsp:  14%|█▎        | 11.6M/85.4M [00:01<00:05, 15.1MB/s]0:00<?, ?it/s]
+msl_surf_rover_loc_2837_2934_v1.bsp:  38%|███▊      | 84.0k/220k [00:00<00:00, 211kB/s]
+msl_surf_rover_loc_2127_2224_v1.bsp: 100%|██████████| 206k/206k [00:00<00:00, 329kB/s] s]
+msl_surf_rover_loc_0000_2003_v1.bsp: 100%|██████████| 2.59M/2.59M [00:01<00:00, 2.29MB/s]
+msl_surf_rover_loc_2358_2482_v1.bsp:   1%|▏         | 4.00k/270k [00:00<00:10, 25.8kB/s]
+msl_surf_rover_loc_2837_2934_v1.bsp: 100%|██████████| 220k/220k [00:00<00:00, 350kB/s] 
+msl_surf_rover_loc_2713_2837_v1.bsp:   1%|          | 4.00k/333k [00:00<00:13, 25.6kB/s]
+msl_surf_rover_loc_3192_3289_v1.bsp:   0%|          | 0/313344 [00:00<?, ?it/s]
+msl_surf_rover_loc_2358_2482_v1.bsp: 100%|██████████| 270k/270k [00:00<00:00, 431kB/s] 
+mar085s.bsp:  29%|██▉       | 24.9M/85.4M [00:02<00:03, 19.0MB/s][00:00<00:02, 131kB/s] 
+msl_surf_rover_loc_2934_3068_v1.bsp:   0%|          | 0/423936 [00:00<?, ?it/s]25.4kB/s]
+msl_surf_rover_loc_3068_3192_v1.bsp:   1%|          | 4.00k/355k [00:00<00:14, 25.6kB/s]
+mar085s.bsp:  31%|███       | 26.1M/85.4M [00:02<00:03, 17.0MB/s]0:00<?, ?it/s]
+msl_surf_rover_loc_2713_2837_v1.bsp:  25%|██▌       | 84.0k/333k [00:00<00:01, 211kB/s]
+msl_surf_rover_loc_2934_3068_v1.bsp:   1%|          | 4.00k/414k [00:00<00:16, 25.7kB/s]
+msl_surf_rover_loc_3068_3192_v1.bsp:  10%|█         | 36.0k/355k [00:00<00:02, 131kB/s] 
+mar085s.bsp:  33%|███▎      | 28.5M/85.4M [00:02<00:03, 18.7MB/s][00:00<00:08, 25.7kB/s]
+msl_surf_rover_loc_2713_2837_v1.bsp: 100%|██████████| 333k/333k [00:00<00:00, 527kB/s] ]
+
+msl_surf_rover_loc_2934_3068_v1.bsp:   9%|▊         | 36.0k/414k [00:00<00:02, 131kB/s] [A
+msl_surf_rover_loc_3068_3192_v1.bsp:  28%|██▊       | 100k/355k [00:00<00:01, 258kB/s] 
+mar085s.bsp:  37%|███▋      | 31.8M/85.4M [00:02<00:03, 17.1MB/s][00:00<00:01, 131kB/s] 
+msl_surf_rover_loc_3547_3644_v1.bsp:  11%|█▏        | 36.0k/314k [00:00<00:02, 131kB/s] 
+msl_surf_rover_loc_3192_3289_v1.bsp: 100%|██████████| 306k/306k [00:00<00:00, 485kB/s] 
+msl_surf_rover_loc_2934_3068_v1.bsp:  20%|██        | 84.0k/414k [00:00<00:01, 211kB/s]
+msl_surf_rover_loc_3068_3192_v1.bsp: 100%|██████████| 355k/355k [00:00<00:00, 565kB/s]
+
+msl_surf_rover_loc_3423_3547_v1.bsp:   0%|          | 0/391168 [00:00<?, ?it/s]212kB/s]
+msl_surf_rover_loc_2934_3068_v1.bsp:  43%|████▎     | 180k/414k [00:00<00:00, 371kB/s] 
+msl_surf_rover_loc_2482_2579_v1.bsp: 100%|██████████| 208k/208k [00:00<00:00, 332kB/s] 
+msl_surf_rover_loc_3423_3547_v1.bsp:   1%|          | 4.00k/382k [00:00<00:15, 25.7kB/s]
+msl_surf_rover_loc_3547_3644_v1.bsp: 100%|██████████| 314k/314k [00:00<00:00, 501kB/s] 
+msl_surf_rover_loc_2934_3068_v1.bsp: 100%|██████████| 414k/414k [00:00<00:00, 529kB/s]
+msl_surf_rover_loc_3423_3547_v1.bsp: 100%|██████████| 382k/382k [00:00<00:00, 606kB/s] ]
+msl_surf_rover_loc_3289_3423_v1.bsp:  10%|█         | 36.0k/356k [00:00<00:02, 131kB/s] 
+mar085s.bsp:  57%|█████▋    | 48.5M/85.4M [00:03<00:02, 16.5MB/s]0:00<?, ?it/s]
+msl_surf_rover_loc_3289_3423_v1.bsp:  24%|██▎       | 84.0k/356k [00:00<00:01, 212kB/s]
+msl_surf_rover_loc_3778_3902_v1.bsp:   1%|          | 4.00k/354k [00:00<00:13, 25.7kB/s]
+msl_surf_rover_loc_3289_3423_v1.bsp: 100%|██████████| 356k/356k [00:00<00:00, 566kB/s] ]
+
+mar085s.bsp:  64%|██████▎   | 54.3M/85.4M [00:04<00:01, 16.9MB/s][00:00<00:02, 131kB/s] 
+mar085s.bsp:  67%|██████▋   | 56.8M/85.4M [00:04<00:01, 19.1MB/s][00:00<00:02, 131kB/s] 
+msl_surf_rover_loc_3778_3902_v1.bsp:  24%|██▎       | 84.0k/354k [00:00<00:01, 211kB/s]
+mar085s.bsp:  69%|██████▉   | 58.9M/85.4M [00:04<00:01, 20.0MB/s][00:00<00:01, 210kB/s]
+mar085s.bsp:  70%|███████   | 59.8M/85.4M [00:04<00:01, 16.5MB/s]00:00<00:00, 371kB/s] 
+msl_surf_rover_loc_3778_3902_v1.bsp: 100%|██████████| 354k/354k [00:00<00:00, 557kB/s] 
+mar085s.bsp:  73%|███████▎  | 62.7M/85.4M [00:04<00:01, 19.6MB/s]
+msl_surf_rover_loc_3644_3778_v1.bsp: 100%|██████████| 363k/363k [00:00<00:00, 462kB/s]
+mar085s.bsp: 100%|██████████| 85.4M/85.4M [00:05<00:00, 15.3MB/s]
+
+
+
+
import spiceypy as spice
+
+
+
spice.furnsh(str(mkpath))
+
+
+
mkpath
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy/spice_kernels/msl/msl_v34_200101_200105.tm')
+
+
+
+
!cat {mkpath}
+
+
KPL/MK
+
+   This meta-kernel lists a subset of kernels from the meta-kernel
+   msl_v34.tm provided in the MSL-M-SPICE-6-V1.0 SPICE PDS3 archive,
+   covering the whole or a part of the customer requested time period
+   from 2020-01-01T00:00:00.000 to 2020-01-05T00:00:00.000.
+
+   The documentation describing these kernels can be found in the
+   complete MSL-M-SPICE-6-V1.0 SPICE PDS3 archive available at this URL
+
+   https://naif.jpl.nasa.gov/pub/naif/pds/data/msl-m-spice-6-v1.0/mslsp_1000
+
+   To use this meta-kernel users may need to modify the value of the
+   PATH_VALUES keyword to point to the actual location of the archive's
+   ``data'' directory on their system. Replacing ``/'' with ``\''
+   and converting line terminators to the format native to the user's
+   system may also be required if this meta-kernel is to be used on a
+   non-UNIX workstation.
+
+   This meta-kernel was created by the NAIF node's SPICE PDS archive
+   subsetting service version 2.1 on Fri Dec  1 09:03:32 PST 2023.
+
+ 
+   \begindata
+ 
+      PATH_VALUES     = (
+                         '/home/ayek72/mnt/slowdata/planetarypy/spice_kernels/msl'
+                        )
+ 
+      PATH_SYMBOLS    = (
+                         'KERNELS'
+                        )
+ 
+      KERNELS_TO_LOAD = (
+                         '$KERNELS/lsk/naif0012.tls'
+                         '$KERNELS/pck/pck00008.tpc'
+                         '$KERNELS/sclk/msl_lmst_ops120808_v1.tsc'
+                         '$KERNELS/sclk/msl_76_sclkscet_refit_s8.tsc'
+                         '$KERNELS/fk/msl_v08.tf'
+                         '$KERNELS/ik/msl_aux_v00.ti'
+                         '$KERNELS/ik/msl_chrmi_20120731_c03.ti'
+                         '$KERNELS/ik/msl_hbla_20120731_c03.ti'
+                         '$KERNELS/ik/msl_hblb_20120731_c03.ti'
+                         '$KERNELS/ik/msl_hbra_20120731_c03.ti'
+                         '$KERNELS/ik/msl_hbrb_20120731_c03.ti'
+                         '$KERNELS/ik/msl_hfla_20120731_c03.ti'
+                         '$KERNELS/ik/msl_hflb_20120731_c03.ti'
+                         '$KERNELS/ik/msl_hfra_20120731_c03.ti'
+                         '$KERNELS/ik/msl_hfrb_20120731_c03.ti'
+                         '$KERNELS/ik/msl_mahli_20120731_c02.ti'
+                         '$KERNELS/ik/msl_mardi_20120731_c02.ti'
+                         '$KERNELS/ik/msl_ml_20120731_c03.ti'
+                         '$KERNELS/ik/msl_mr_20120731_c03.ti'
+                         '$KERNELS/ik/msl_nla_20120731_c04.ti'
+                         '$KERNELS/ik/msl_nlb_20130530_c05.ti'
+                         '$KERNELS/ik/msl_nra_20120731_c04.ti'
+                         '$KERNELS/ik/msl_nrb_20130530_c05.ti'
+                         '$KERNELS/ik/msl_struct_v01.ti'
+                         '$KERNELS/spk/msl_struct_v02.bsp'
+                         '$KERNELS/spk/de425s.bsp'
+                         '$KERNELS/spk/mar085s.bsp'
+                         '$KERNELS/spk/msl_ls_ops120808_iau2000_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_0000_2003_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_2003_2127_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_2127_2224_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_2224_2358_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_2358_2482_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_2482_2579_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_2579_2713_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_2713_2837_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_2837_2934_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_2934_3068_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_3068_3192_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_3192_3289_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_3289_3423_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_3423_3547_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_3547_3644_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_3644_3778_v1.bsp'
+                         '$KERNELS/spk/msl_surf_rover_loc_3778_3902_v1.bsp'
+                         '$KERNELS/ck/msl_ra_toolsref_v1.bc'
+                         '$KERNELS/ck/msl_surf_hga_tlm_2579_2713_v1.bc'
+                         '$KERNELS/ck/msl_surf_ra_tlmenc_2579_2713_v1.bc'
+                         '$KERNELS/ck/msl_surf_ra_tlmres_2579_2713_v1.bc'
+                         '$KERNELS/ck/msl_surf_rover_tlm_2579_2713_v1.bc'
+                         '$KERNELS/ck/msl_surf_rsm_tlmenc_2579_2713_v1.bc'
+                         '$KERNELS/ck/msl_surf_rsm_tlmres_2579_2713_v1.bc'
+                        )
+ 
+   \begintext
+ 
+
+
+
+ + +
+
+ +
+ + +
+ + + + + \ No newline at end of file diff --git a/tutorials/pdw_2023.html b/tutorials/pdw_2023.html new file mode 100644 index 0000000..9ad8475 --- /dev/null +++ b/tutorials/pdw_2023.html @@ -0,0 +1,1643 @@ + + + + + + + + + + + +planetarypy - On the way to a core PlanetaryPy Package + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

On the way to a core PlanetaryPy Package

+
+ + + +
+ +
+
Author
+
+

Michael Aye

+
+
+ +
+
Published
+
+

June 26, 2023

+
+
+ + +
+ + + +
+ + + +
+

What is this?

+
    +
  • PlanetaryPy organization is community effort to +
      +
    • develop a core Python package for planetary science
    • +
    • help other planetary science Python programmers to disseminate their work
    • +
  • +
  • This talk is about the core package status only.
  • +
+
+
+
+
+

Core package work plan

+
    +
  • I am since long working on a core package draft.
  • +
  • Nothing is especially clever, the structured unification is the clue!
  • +
  • Shall be submitted (done?) to the community members for review.
  • +
  • After successful review open for public pull requests and hackathons.
  • +
+
+
+
+

Core package focal points

+
    +
  • Easier access, download, and local management of +
      +
    • PDS data
    • +
    • SPICE kernels
    • +
  • +
  • Removing need to learn various web interfaces for different data
  • +
  • Working easier with collections of PDS data
  • +
  • Easy basic SPICE calculations with human readable I/F
  • +
  • Some web and time related utilities
  • +
+
+
+
+
+

PDS Indexes

+
+

PDS Indexes

+
+
+
    +
  • PDS Indexes contain useful meta-data for PDS datasets
  • +
  • planetarypy provides access to these via a config file +
      +
    • pull requests to config file will add more findable indices!
    • +
  • +
  • config file tells planetarypy where to find index
  • +
+
+
    +
  • planetarypy downloads index file and
  • +
  • stored as parquet file, ready for pandas based analysis.
  • +
  • tells user when new index is available
  • +
+
+
+
+
+

Example use

+
+
from planetarypy.pds.apps import get_index
+
+df = get_index("cassini.iss", "index")
+print(df.info())
+df.head(3)["FILE_NAME IMAGE_MID_TIME IMAGE_OBSERVATION_TYPE".split()]
+
+
<class 'pandas.core.frame.DataFrame'>
+RangeIndex: 407299 entries, 0 to 407298
+Columns: 140 entries, FILE_NAME to STANDARD_DATA_PRODUCT_ID
+dtypes: Float64(70), Int64(20), datetime64[ns](7), string(43)
+memory usage: 470.0 MB
+None
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FILE_NAMEIMAGE_MID_TIMEIMAGE_OBSERVATION_TYPE
0N1454725799_1.IMG2004-02-06 02:07:06.458OPNAV
1N1454726579_1.IMG2004-02-06 02:20:06.362OPNAV
2N1454727359_1.IMG2004-02-06 02:33:06.397OPNAV
+ +
+
+
+
+
+
+
+

Instrument data

+
+

Instrument data

+
    +
  • Meant to serve as basic data access, read, and access classes +
      +
    • to be boosted in the future by the GOAT PDS reader pdr by Million, Inc.
    • +
  • +
  • config file controls what data levels are accessible +
      +
    • and how they are stored locally
    • +
  • +
  • currently CTX, HiRISE, UVIS, CISS are supported (Diviner in the works)
  • +
+
+
+

Example use HiRISE

+
+
from planetarypy.hirise import ProductPathfinder as PPF
+
+ppf = PPF("PSP_003092_0985_RED")
+
+print(ppf.jp2_path)
+print(ppf.homepage)
+print(ppf.abrowse_path)
+print(ppf.nomap_thumbnail_path)
+
+ +
+
+ +
+
+ +
+
+
RDR/PSP/ORB_003000_003099/PSP_003092_0985/PSP_003092_0985_RED.JP2
+https://uahirise.org/PSP_003092_0985
+EXTRAS/RDR/PSP/ORB_003000_003099/PSP_003092_0985/PSP_003092_0985_RED.abrowse.jpg
+EXTRAS/RDR/PSP/ORB_003000_003099/PSP_003092_0985/PSP_003092_0985_RED.NOMAP.thumb.jpg
+
+
+
+
+

Example use CTXCollection

+
+
from planetarypy.ctx import CTXCollection
+
+coll = CTXCollection.by_month("F01")
+print(coll.n_items)
+print(len(coll.get_corrupted()))
+
+
1321
+35
+
+
+
+
+
+

Archived SPICE kernels

+
+

Archived SPICE kernel sets

+
+
+
    +
  • NAIF offers archived mission kernel sets for 33 missions:
  • +
  • Kernels can be subset by time window using Subset link.
  • +
  • planetarypy offers programmatic wrapper around subset feature.
  • +
+
+
    +
  • Zip file unpacked.
  • +
  • Kernel files stored locally and logically.
  • +
  • Meta-kernel edited appropriately and immediately loadable.
  • +
+
+
+

+
+
+

Example use

+
+
from planetarypy.spice import kernels
+
+kernels.datasets.drop("path", axis=1).head()
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Mission NamePDS3 or PDS4Data Size (GB)Start TimeStop Time
shorthand
bcBepiColombo42.32018-10-202023-06-21
cassiniCassini Orbiter362.51997-10-152017-09-15
clementineClementine30.81994-01-261994-05-07
dartDART410.02021-11-092050-01-01
dawnDAWN386.42007-09-272018-10-31
+ +
+
+
+
+
+

Two main user functions:

+
    +
  • get_metakernel_and_files +
      +
    • will check if the kernel files are already locally available
    • +
    • if not, download kernels
    • +
    • returns the path to the edited meta-kernel
    • +
  • +
  • list_kernels_for_day +
      +
    • will only list kernel filenames valid for the given day
    • +
  • +
+
+
+
+
+
+

Generic kernels for illumination calculations

+
+

Generic kernels

+
    +
  • Manages a minimal set for basic illumination calculations
  • +
  • Currently slightly biased for Mars but many other bodies work
  • +
  • Kernels are automatically downloaded and loaded when needed.
  • +
+
+
+

Example use

+
+
from planetarypy.spice.spicer import MoonSpicer
+
+moon = MoonSpicer("2022-02-22")
+print(f"Sol. const: {moon.solar_constant:.1f}")
+moon.set_spoint_by(lat=0, lon=0)
+moon.aspect = 180
+moon.tilt = 30
+print(f"Irradiance on tilted surface element: {moon.F_tilt:.1f}")
+
+
Sol. const: 1388.4 W / m2
+Irradiance on tilted surface element: 412.5 W / m2
+
+
+
+
+
+

Come to the demo session!

+ + +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/tutorials/pdw_2023.html.pptx b/tutorials/pdw_2023.html.pptx new file mode 100644 index 0000000000000000000000000000000000000000..6a92cddd093f325981177bc49014312c3488005a GIT binary patch literal 186268 zcmdqJQ*a@kw& zV~pn=NrU}xt<=V)baWbF8Ve=*Ry zSzC1}&)KZwqr9UIdWK)D$QZDcu{y6yE{jM!0D>f}P=bLFH$C1D=*?44HJW9;0DWtH z-0-~YdwQt0MrW5Rvg|vi?+(My%?zzS>fm^*``}FP?-;70W~TCUK5XxGRKp;G4rDGf z3%HMpOaMEqr5PajB9p0%i7^cbjoIK32@VKV3eUGo6;$Me;CgTB|a;@mz`O2 zO;bT!tFas`kI)kjEo}LWKiUAMrKV5~n|&}hqyaE=FBB3PW~#tWj=;I`MRgwnYKhYm=OFCbrQl&Tn@+;ZNF zlwjIfz#VAMH$Ko-F4#m4@nE_-%-_7|W0>hM=9yG6vGnW)dhc@^12w!ao(Ydc+Q2^5 zaEq0#`CcpvIbxq~VrzRPD&C5LFyKXd@|doa%6MJo*<)cYcY%xLN(WH|LRAK||5=cI zSmC=yhS*?@P|xfeH%s>Mi;g5L{)T*9RNO~db?yu}sy`!Y!`A!;TJA3a!}?J<#r_pA z)4vHA;~xR5QeL;gWI%XNn(O|COsR|tg@6BoR3s*Mzv>2VwVPojxZ>kIq9Y{+MXB(z zw;nl@>Dc+OH3KIyfGempEtB5SR}0wK-!yJRIyH0H;)<8Cdbbr*VB@D?jeRRlr1;x# zI6v0R4VyhC*}(D}j4U%O))Lr<5Q0da@ylVztu7iM zTXt!i4uA1UigA{T_=%Xqcw3a0x^+gVw3}6vCy3XytU`h+!Y5_j*?NG11&c0|fvZ9RytP;|9ls5FsRwq&i(8i*};ODP_#DjYGY{yTxU zV=2)0w%RVgfu>va@wa=2t|^n>N$W+Cp6l|cG36X_xP#hn%V8W99evV|f!sZLl{^)d zZyd$G0Dp~|wwyu_4=?}#FVw&8WlVoWZBu34W}W>jYGv6P_^_LW5KL{-= zHSf~$MbHqpk_){~mak$H<6G_9`8#F35p4%J9FIu5dAH3#sqXkSm@2lgWhwcHtca!@ zRJ>nbp6~G%pI1HEV9NoKSoFtDmA@5aFro>Cq=y)u&CaS@b{)kf`;1}EEEft;xiF@6 z8m3Ds!alw$UamJM0r9HOSu)p=-;}x$GYOJuqc^pcm^tDCmyNZ!N=Zx(3b3T*y`Ca2 zOjdr}+3X(i;OW*J;Tj1}m-X63HIxIfX2LiaTdNok`^?v3mw2_CcgYaV1x!^En%dr` z6iIIgAsDM}tfOt}z7`6*w#jBk;h*E$5vo#qjh;FgIqORkll5uY`(-J^da$<@a4JAt zMxe3*Mv{cDQUv|360;Y=)E0%vphotQ%WSo%&;%zzblEPnI~#3%Hp{REsxYVS@G2M3 z8m#KCcX$>wwJ2hAHOH*yk!5+*oi9wK;xXWwJYwh#Pk1{qayYBz3Ty9a1`E0Hvw234 z;dVG&aC6b;_TS$NrbAp>+Ww)qQE17a`yf1|Be)v9#=nbd2g{G?ms_cBlBL9}2WyA$ zI9FP~=JtkNiUYRH>H^6J*1IDoR{aw#P~a3)6oD%c!JE$Ds?KjqjB-Sa=R|-LwS43o zID(EGD|snoaZOWXoSY8p!TYT$f;E4w2D06TzlgSC2oR-?RDCDMIHD?sprhcA6H$<6Z=jzUx++_53kISi zf(g01ad?ppsk+)){jeSZr|NKPa}R759TKnu_(_yWr2?0*L5q^>;A)1_Wqd)43TP=3 z)<*03vNE28StEpZ-oJv>2%D1Y0z|*3A}7Bj`n5WzT8V=$dA741ZQ`TO1S&%b`^dei zez$@~X%cjoE4I!fMFNtrB5x7m?KFp~sxHwgC?3GlQ5@5*n+a)Dt6%^pHFijB9HlG$ zIa8p-D6x@(2EUHp;fYmu(>C}!;`&_ouLYMq2{VuZ2mp}!RdoLf9+>|qxG2R{nE`r) zH`Ix%pB!cZg!2-mKVlJ-ES>@OTcrc(R!NC{V`2i)ehKQHH@UjFnCx#Tycq=lYMfqlQ3rU*J~T>{z&0NDNr)=&n4=g8KoC1n;0mj)KW-C6+kZb5WAZi zO`Pt?T`(8%AZ-??Xg19eyw6)Rn_049Lx3DL`Xl5rFzxNBJ243OqQfbMPWaTcZD(=M zs?NfCLQwrqX>9p1sOjJ!oxbd7HouWGP*4WRX?{K>9Q3JeoKT@{i2-^tw?VvCYAVhH zgD{^4Wf)58i$B-Ctqgpgi=B3FbZv^s6Cv}OaSKdQPc3`9!!(oNu0j1VSxg>&&WV9j zBAz^b9O2tNwKDkNT951X+_Ant(nrGNVhL`_lBuMo741wtS&Q1_Nl9>^#`}s-@6|2F zKO$4`)GF2K(xz_Pmq2w@c0-O;%c%mQpMa0T3&F|5$=oG~;?s1<_E$IiRUicmzb3T= z4g_if_`@18r`+E2qDQJAtB+hQlPA1w{!itlL9I&LNZ}FX*Lgj zFR-7F-kYKduVB?XU!ClGka)=zU-;zjqP?&@Z4QDxDK_0K?X@7u_2sF4zXM_!Fia|j z2}Zqv>7C^o=Y^S-E{F{K@P%eOW$ZBA#)inj%lQ=H0yE%)E|zVET$ zOLVy#H^(ZI0Kd#zsc!B=ekrOF;SS=+4?b4pfGDBf(b8Bf@i0i6Lan?j%7iMff5@ zZ1EB_tGFBTS079ArgZc237=c?HHExvnpH3k+m_qkfGm9Y#GmE3Su3tzT!D<+2G7juVPt^GnEqhLg&0&pjQhgy|rZI7dL0c)q2kbw^GBStusC{~&&| z!H2?R9=K*E$JgI7>D(~+KEoKl7g`bl#H8&nCY8s^yqF20oEK(28#p-L+d4NxzB)Ni zAxtY6Cl*;Xl&q>CH6+x2dE-C`$S;BoPp`Jqee9>V&~QU_W~HvtCkx?j+`mPc5JV&G zp||)LxnlVUYel4E9-CZsl5phY^BV8U8Ke6fz8t?Vp_jESez!)QrJ@okp8||5W=y#- zsrBeY6%?IKoC9N=7*A{br!~b9Uri9;0@|df+`t2v?0yCK;@zo#K~t2Y?RY)vL+QL? z7ps?+bZg8>f#fL?2~66vlL_Eq6AN~~!6e4kXsy1k52cnjZjBxR%(a02Sy5IEwJ3W$ zYF@6w#p7BN(LMSc6Zi&_v%ndgpp4|W%avq;n-Kr5FhCXHjHpo{QGQNzk3i7;_0 z#R-{z!wGEvmlMYR;DmS730FI`wcOA~Bm+bR$jX1tt0}sXsXZ`HK@S@o1}eJ)8^v-~@pn3VTpZOXaXw0-D1WEeYYE zTNVXJt4(=4xvHCzfE^fP@p>U_S0I_^7vAT3b54OP;^!Tu6^ML_fu%WS>ypXH;*Wr0 zW)?V7qtD!fq&S?40D-3EL=VZk7>$dc5pb8*pZWZ%9Y=il^d+c)0MgkMwAsRVG|(-}uRbx>`rCYs#%uny#n| z@VUb?#Ic&<4mJS@vPx%z$$xVZOFVX1_~9f0H{infxDI&EnR`2S69^|Cn&Ubhxz~$D z9M){12*+uYB2Ms-|%?QAA$#=*@ zl8$)nNBy|2OY)aVBK>WjW`A)ij$Sd)>yN2^JA)fa{{)^qsEL#|*d;Rnu zp7b=CyTpNCpwRm_PkQ!0?5tA$FHj)!T`R0?%wm?7Pq47;pjFV#=g4|U+Hs5w2L!a= z^X&m%w_Yn!D7=i|h~97W%m(&y>8?U${`Ex)@mbh7rav@N1x^=R%6g3;Jg_&34XcA^7Hm$U&Qh6k#$O;LvF*myP`P?Qb;Y z72Y>iVt;aicF<=%CypA8ksJis%t3H|R~N(HTmY*O<=AYT7t~4V$eap-hNK>Wzp<>v zpmKA@Hg6eP^S1Qd@OMc}E;>9ayx+45+~y_=AxlaHNb+USr>2aSmp1uv2urRahIE3u z-j5h|15U->b|*^weZVns1VbG*s+3OT;jrUfRoln>Jtu5@4tt0&Zcea3kF^In;f3Gq2xeaq*$;*wT4_DtA%?m{dqiiK-DS5%B{5PU zBn`cK{XJmv1jv{5FGkmkSMT3jKqu*L6SF~l;w~^47)s8n7woCa2v~N3S*!Y zHCx%_g4+##YnGvO;S!~q+dBb_v^1iMq&R>U6(+~xWXj{RqF%`mkz2)LXQI2-j~Dg3 ziebJgrb+*-mM-N%7u};IYE`)K46V#6*ss=TReQtelYO>K){WZPeWb?g8={`+aI& z^A8a4xvHuCP2aQ@tmqMhTHf4Cd%6Zu+Q?>vB)IX+x-P!EJ>wzm?;KlVZ z?aGtG&T4v$EW#h1MC#Ax|1N`38imgyvPAIH zJ{)5nm4KnekSGtGvAJxRUjA2~06kQNz8ee%;rG-j)r!e)1&Cqxl7kon8z}ftibmAZ zSx9A)%xzHVN@|+uyq1e&!Qxrj0!$aq%kP?VW?yP*bEyGKmevh zOda`CxA|Zx2*bvxi)2JYTIK`52_kw!*)L>HS#Ab=T6e>aoAw^Bna-KbISnC2$n3`} zpsMt5Eaes$$~oxaeIJT;B<3_V!f)EZv{rID!Gxot34~6n<0z?Rje5g=pfMJ$^6Xc- zyyYgODTHa9yn>o&U8OQjCuwDe``)M#t4?_im zEK?644Ca1JQGI0d?;Dm}hWjO@2KmPtzx|8c=p^0bB-}_^>pJ;_c>Xl!AU;4edasYJRJ?_r(y$q*$$>HNjlyowr^c$=d zv3?aNgk_0nfK7)ojFm(}SJjx9aO-N5yLwy7qF*D{kmOHRJ_=MAN#v13vhQRArm8$AKX*GBIpn39Ue7s zv5AR;A7b!V^3hI}q0CokFOJzOR=I>^PyFzueBvbV+gp}>pWtoW{Ft6Mer5Vj30@sl zw2iOaofkSU+`KRmRXt!S-9Qu8kIJQ9VdY$xnB^DT%z{HFbKBojB3;+EUp6CfwPx0> z*y=p5o@M~HHhj85DShzla;daKcNU^Bl2goneUh1dfczD;k$PwFT)qZF{nr8x?Oz=e z=>I6ODV22@ECvMcD^;~uxjw;tt=7aukg(W0Q2D|_g>Axp=Xw?IvlVgIPu%s6;6hLq zLdsmR?&(Yp$M0CLZ~2KpRTyg3i}+`aYZwOMr#6g@4o_+ht-YJ1qDw(ta?m(A;BYDm@f!+0(?%MqX@=MoD^M&pb4 zy&(44#WbyTkW=UWCO_2Sk-J*RgC>6|9WV$o0T1_!RrUC%rE7++vz=-3eSh3D5Vt0n1;5UU0*!(MB$m~ zzZ2C<(3ZZtt?sO-!gL8Dm^E^MWNul_@@^hC&r?P&m~{{!p5^gN+E2^)dn&ZvY5=DG zH{0PB`0}>j3dhQ!j>oSaNq0fcimL8B_9h1VkAoV6LT%&k?!$S+b~s>&`pyNYmPTeP z%hLVM1NP#DH@#F7vt|#5g+Y4EC?ePPbI2B-VjOb=;seJ?=OiSe8XU6ln@|GkdBW2G z&X0>p$A`gFpNV(65+aux*IxZWp~z}mQ6RZ2ka8Cb2@Uq;Lo^-N&*f_P&~#F>=AfDU z_13wYc7Pf-S;Logo++XUT?Rx%p$5@>#^q?vBpw8DUBWx_W_Gru1GhQBbkW863ZE90 zrKWfFz#Oj~Ov=v| zATV}^a01fJKQp;VFSzoEQ_Ib1(lQibYZ;>t!9zmU-|X5!A3C614wp`xx$rzjxU?Id zZa9J$pkYTue_iALHK_wg4@xCpL|X7Q5B_CR|GayBt*&g=|5#o5U%`@aGy@Sh%wp3( zfs_Gu;Pon4MnKTTMpAxyyNQKmJQ2_x#CI@pHRM;@icrh~EZJ9SXz8G!`x&(FpU&>_ zcHnJSUr)WPG0QlSCsHoYqCIY91S5=i#QxMa1ExH9Sd%y%n8Ot_J?Y^i04)nQ5GFo^ zl68AU?cBQJ2=JWJAtuier-nEUkXm-!H(|X+Wi{*rO%ME#Rd5<^&X+}+R*LNVB7tT8HR?`7R+oh zqQ~UzXzF&QgRCS&VgS=yZYeTif1m(p7J@2CJvySMB?bH{d|@mM3zWuBOB(&gUViwO zNF=Dd!O%dSv)O2KZTDVWvCmlHu`7tYIV(G-#{^}y)ZEqM>v>B=5Ykg$c)I{H7eY+B zXg-F-p@4|vYc5BOpWghXXyV%BpwvWSUdMgt#b_n32b-f}&LrDe890e}CJ;=Gofb;3 zhve1r)KoiGT@FIB`>1F}P|aHQe85yIeqF}TdKW}CM4=YS=49b#_BT! zn}jp;kMu=+Q|F3&5q2Lj+61`EwQywsLy9tD!IXn8$rO+E4kUwp2C6|Kq!_2rh82VyX2&vu44t#YQpWgcCRnP=nst7GQrpTto#1TmWupyt zj@x`C%S8GNoh;p6s4jk3KtnUOp~gj5fH23Sk@`?sNsdW{Y)#}aJSmoMY8o_i13OLq zlx^ZXyIe`%mm_>jXxEF@r&bq9CuTuhPe@BOFponxCZMU72g=GD) z19k+Fm#qkr%7&mE#0MYQ=qd;9VYVZm2ws>-v+0>|>cBrTmo0OF`r@VSQNx}_@7XE!7-J63RdJ2Yxylq#+Ptv&pz%-+_LsKE;QpzfhH;`Mg? zZR%>=>q&Lo>w0_qEyJN!uCatQIs$b(CG&p&McNHepfS5Tvf1Bq6M*f)t!)0Bg`Y>U z2>b3ELQyzMK=iieF>1_;sDiR^vrRQkidXexCCJ0IvC*^P*!*Yj0r+2oEc^t(x%$G7E-sL}|@+IoHHOMZ=3Pv|Mi-Z>2U;lyBJcF40p>NwK37;SD|xkB_EtX)nDj zwol4@i^^=+M<8|nVO!KI)!AfhWVS`aSF7}CHkIMt#PB}fqd_Q%5`r|uMNUp)H5us~ zQ1jAfz!d1g=luaR$ zO2U4+0)*@ue}m&Xx@&{m`qPdIb2UH{U3o$5ds?Vr!?q^=iMStPObFzRh8KH2vjg7G z`E9Ifi&jUlz?eM#Y{hM;s-KS;sp5{?j59$%fQ^8bI1E`w3-VB1XK^s_QqD- z99=wCtUS)BeWuy|afJe`Qq7O}6$CYyzv*g!-dcuKt!2Lk)(2IIS1O-@v?h9FG#V`V ztG^ma`%Ds+E++KIgViI+r%!W2BHDPey!8*1oc&wJ8E%*Jv!O%E<61uJRFwD91q;z1 zgmH;s>bx%u-S1Bv?buqS*}Ev274+QmF^rbVbkWlB`Z7|IlqfdTNt|R$&iB;C>C`wv z)B83Z-k8UMVWsIc8IvjI<4B!xW8X#fB@v=B)kGJJq|z{@S@;z(qXHlsTF9R#DM;nAuVuM2KWyc$%ds;h}g98g1R3KGwf*Q#>i zd=YJVQC(CUjS$H$PM?sOAAH#@!Pvfb{hUJhA>Pre?I2={ahz9Rx?owY&;MQN_599D z?W&uG_p>j&mPCOpa@o8Z<8-aXzd1l@!po8+eT1i*vu%@#m0SiyBOhA1G16fKt}||Y zi?LQq+(7X#zk@ayR8=`CyfL(!>?$E@*+;R1kTNe)#tG(9V?!9lH_ZxiLpte=;T=iEHD?o(bkc$GE`XrOT10OCwr>)3Y)TuIS0zTY(Uq z;uxX}0QI*}2lJ3{)vS`ZenomrmD3myy?o3-yKClJ04b2WodEUtkqH#r&Vp>PX9kew zF+awOcH(EVO4hgeEgBtZq(=MjK=h1j;}|1QI&JVK$UQ3oOowGCtC3X)WymQWly#xV z%E7l1w^V8Mi5Q`1Wk!vL(a7~&2UCjV-;|g~oN;hMa-ahK;a+JhH4{|x)lu93uA}~W z;)+sSx7o-4T0{=MqOF_nB`KH8m#3tZYf`Mj>)jBG?2_W^9ABkGY!;j2z5oF;IUZ%| zw|3wa@d2xiG+EfYE9!xSpF~%9M|@i4_`D51o^dU(&*dSMYYA#@c-mqLV4v|TxE8>c z?yQ?rmBEX4kYyEp0tKQJQih|(B~pDqT)#Rv+l*#%n>{Dze}*yOm%}q_&&FaaNW03# zfTry&JeN((XKY5)RxoQu!`HBIYc?_5vU2Ewvqih1WdXR9tG|9 zVKryEtc>)G4H-rYG0B;i*dvL=t@E0gu2%ni)nGous~JjYgW#aT9x@KrRaR~&r+EaD zdnT|Uy_k$J0S`%p%U8gvAAO9a=DsWz{V)PbjnRAR!kUwuKI=GxEvvAQr;VQ;%2!Li zKh0-z)>ds9Dr}`LcWBe{p1UX}^m!}lP?Y+_`dZ2~B2L@BQHV*CB_!`42Z(VWltUN9 zONn1dG9&fhC{v|UN*~-Z?!VkKk=JJC0jq)b=h6FzLfa>570n4oLb+rHv+q3xnlPE< z^C*%&kByF~#k(trzeJvW{&i?JaM@NPf6<>e=->3oKhHf?N^>??1PE_Qs8=k}RLV)H zWC{zc@X`vBF1!E(Yax?>K-1l?ue2Lk`;FB`6yAP8+9sw)a5h)#YrTMiKc{I|ri{h` zs+=U&H~rr=d_S+#Hn%rl+?k)~p1rH@W|@?wkRy_Z%045q0)_dt*Gl!&rr7EJ$CMQfbXovh3yk(y|J zIBeIbqBtG*Ot=3}cOXfO$gGV~b)PNXY%R%)Zzb&;rh<+=R7a%6%BP{S>d%aF)7Vmo zirslCDn^R_H5_1ECq0xN`=xNDt`L>8VtTW$^E10#3w3qQ@T>+aq&5 z;HJoN{zZsLRHi6ksa?y`Rcj6DpSHw3Msp3d1|f(bKi5t*&_h#y(4trg5uY_Oz#5M` z15rd;1xL8|OLFcZXj76+K!Rgd?HM1+>#d7}~Z7mMFDS%cFmAJCNj6#D(E{{zR{ z_pS#p^apK_jL6t~0%vZkO?vV>kJtga9$@fISr4`un9 zxC49(AFozq<|i4!dIMP+v2RE@SJ|GId+gJ5H=Vh9!9|3b&H*Cmpa2blC4tiIeJK@v zHeBqNIAPKG6!iI0&T?#{O=vg}%JKU^WwFqclWN1pevK#NkWwTs`bsD$!}5*r&_Zf* zQz;db$Lb7+hSug$E+31bvv>-2p zzc1rc)R0Q1B)r`U&WmsPis3Ga?8NJzX@y;PtJ+^IqRycN3`aS#n2}7o|CR+Qfb1XT>*glRk<|%i!;ilDcX@RSSQ&ljQpB*%_6Hl|mN$^!iaN9)HV$_4G;9C$%WLA9 zt3Ap{hkPg2i1GF}B3oSX(JH{NbKwOIy875h>;eL@30@)BmQ8q0w?Z#1Xm=)@H-|MT z0fz&Ds8tvEfUaE+GHboA&$oQjj_Z|1c+@2#l2&zpk^Q0Qv=?7)r0pExqn5bcQB|N$ z(4X7ww{O3EFdwlLfXH4jY`%LRY8H62?Z1KOAip3zTm*HUaG%N==zhveBq9wW!Azc2 zPw{60u_U=L_M)sO%%XNJ2Q_d3y8!{T4QobpUzGtKP@yC~7`tL>#`uCT`sv{s;(tOO{AzOyAej3*T6N^0)d=jtt}5POZ0eY4zkG zcUH>j2Ev?~Z@y0JbzxZ5$_>zmwmz~cf>bt};}@Mjf1R{GpXTu8D&kag9LbA}Rq$}Z>%iM{zU%lRdSSNUyELnFK6-py71L?Ft+;dpCPCHA;bwMS*aeqa;WLG4 zqnXoU#ll(#^~X81&?OxNsF3afwVxw-G~y;OSfB;E14Uda%aJ2A!OqhPRk00fEbs>~ zuko7kM2T)r4-MuH@ldI!M0UT<{$rq2`NNZb^HtqUi;YSE`ql$3p6mZ0a|5dj?|+y1 z=U(ZbWj_3yG6&*R_-4gxA{Vf;2QKV_tF3X_Beby1842Q$?862U9b4&>4+2$)Pl4Ni zV|X_brZ8Ec1$se7RaXCZnbCZ~EIYhbywM_iixWfn6TFma=~4Y1YVYyTDne0dz(tzg zrsd{k0R3yh7Z1(t#ME~^E6@5AT!!$QD5kVnp^(-d{Sh{8Bnd}8 zYS_z}I^oBv*I{z?7+ zEb~97HvhfQ{z;|(Eb~7nwEv!)f3m_q%lyxA^WT&C=LZu0Uy(`h_jvH~7bvKcV}@e3AVHZciL3YKSZ*aEU&r(29bRpa>5*RnKJUb%!+2g{^ z+rOct|D4>;Dtu##BLV_&F$Mxa`7eC1Ha0TXr!%+KH#KIUwX-oj?=)7zmR@E}M}U~d z=lAC#9_6#c&=RzBg+|!$wsVD)v2%r>4M6tq`1;8iqnUZEYS=m+d3N>bY-m3@t*$=R z?r7FhRaOx=FdCGPyN=W8@(7}&AjrQyMLoZ$P^CwMu+5Xby9=$(O<8_`+7qZ54}pBl zWrGy4h##Jxui+7xfT+>a-S6>#y@k3v@RYvJsb8^NQ?>n|9O(2wHF|-1$T?=L`S=k2 zbo_ioWo5la{oWV|$^Fix`?-Lmkpp>aE4i{h$@ZD7PyOLUP)bfs0og@~xrTwEzUtfH z5}Ku47{J5V7$?`_dk+K-+jc0W9ZCIDSc)c(Gr%Vx<{cTC?%KEV8BeqPJ;&on7CYzT zs@USQtE|2&E~~bQq;bvf>T`0LH|q0h+?NIL&9`jNmK*p}o*55`?wU7YID{GXQ5}IZ zCa{>WUSgJNa+~xa9p@$F;fm_c3wA%0wJY`RG^v+L9FdfoPBB*+YHRqykttYsYrb`O+$*n7cNCJ&rl! z<2{^fgv!IEphX{KwXok+t7bRCY3s(C4*u;XFQ!%v4s0@T@N@Q@4d(+l6qlU)Io>+5 zQpm^oS4}iVUj|G>YMU^H))hL!JoLY;UnA54*w%JDI4*TtRF+u=ORsMGsCY zfIGHXs)E)W6O{V7Z2(-_HKTw?P}=elAeLZIxY`6DF4d;J1~k{-F1$8mm5txvx-_Sd z6b--AU~8Z2h=?)~6^)Kar@5fLMUXc|b3LAK%q}<@a^Qfq`b;=XMBA# zLMl5eLJ=N4&h2xZB6Pte6s*Y6H@_67-$X^L1&`h#^0@Cz0@SiaW92S~Q4BH-er2Uwb{ z{`#s1CT)nRUCf<&oLpP5Tg@BVPUT1cQsqMp+euwj;#LCx(Y#q1!_>%S-PhICplKzP z-7O{J<>2++{?B_yS!I$cNZkF(o0TTroZW_h0e#0Zzh--K-~B5objssw=5>_|C*U8^T&Asv%mg zxP$E`Qi*sRpUTFqz*C?)1~2pbD8I}z_{$RG#116L=KQalW9#>t_oAd-QHsQPFK!-_ zS-N?&$Bq|VO@1c3gazJvv!CP1Sx)H&=4_#~s7q>9sk(`?!~IfulAWa)P{i$aQIfvY7;-g8(r^=e&%QD#dG+Wwskl#?FPi@Jv!OiGTC&A|L zS9q#8Dn8K2^H-3CyH6J&RdxE_h|*gSOxIBGE|7vdb(|;nh}E_s+l5O3jCcxxO=8;Mp9P)m*jrKw;!F6>RM6vDzd?%X(;8g z*A&XfEr(X{A}tr{-gYa_uxsgw-tV?g#XS?VG%in-m+7Wmso zFopbtDJ|j9;P*^}&G!5;zE?-|=Xbw|UEivo<@+bWTTAJX#04qC-6yyC?~P3pJIiyg1HQ{(HXan{{GTBeSS#?A$jiDcz- zaClCg-E+xD==oQ@#R(Qo*NT_r2J7P%;Mc23vNk9aqt1yn11vff*K}cqq8sj)@~1t( zQhCV+@;TvTd``Ky{UA*zLDN?X;i@!0m;8h%0chK^&D8e>u-(Bfd*|@NGVKFed>MYU zEb2Iviq$S>PZl2p+es!S6$)xchsozr@YSXT?ktE7wJV}E$Oq(rNcVByA?iUHnabBC!EUkp zK-lc*JoGK$Rby?_k!})rGH+FhNBT8a!M&=j)w8KZy+T8y3=ZC_4aQQ*kU$UTSUKDG zyfkGSMR~`xvhMrgBJDs9T8K7qzJ<%LAZ|^RfDpuON!gUrr?sydpORsH&wHIhh-OuoI#fnWdLoD|(PiMSNJ<#>Be<2B0vSXMhaJK*YLN5BDfi?h`bqw0O( zkL7WSQ85=>GM80a<=@y3!hoVVpO9~D^S=muc09#ov4MBN9*=i+VFaEyj+~k!l@&s8 zs2km~6shc;ET)_SV^mnN_B?l8W@wx1UA=+R+m^2=QtGUeU1*wUy@ZYMB6YbdD^;vNHNMD5s}yi77=b4ar9 z%KKgxaqWr&+P6;wclu_+$AT)#3|XFtTkBeRG3qzQ?M2D{`F4h4rFO-{@wVYjL}CEV zqll;IEg9+R*Yp^ApB#V^cf+V854I6V{TG!Mc5Zk*=3!U{BV?gUzce3hgO%&to>B)3)%gJB%&ds@y zaj z_=or@aqV@EO_%2&4wj^Nk!^shAr1%xZ*Zd{$SqT5b*fKFbPY(ZkTfv6w2NTF;H3;V>8*y^4Fsw-A+dyk|D|APs$`c0BQ^!fZO^#?i zD%PDdR_m7g$1z3LRPs7xVtO1)jada(PZ_1s+xBC21PWe0-q`~W;M%#|JnXM1EGep}xR%H6y&HzXgRwn5QAci_RKP0* zi;wYad*bN2wC0OMn`7!SLD%a3oPB%yD@6u`qLd?Q{XJA!EwJQ~h$*XDgM9WBbXOQ~ z%i6a<@Mj9bDB>B}sukH^G}nnszb3EIAtU%h{DBOv;6b!@Pe`PRx1FEALvI;-Cv~(7 z(eNB~C`xYB_PekX+VV!_^UwQ?rjjrx_Dj=>SN)dBtyoR?L&&kK@7B%0(5lWDn&dJY(8KG~p-PQXw zHYAEDzkx&PmkmQUa2)uUBSr9vg6`@yvkjy;s;5FtZxdzQ#f)Rz6<8CzIVc~(?Yw^# z6|s8N34D*B#8rTOMdI7nfE#>G+6$?cZU^d7d2cDfsE_mxa4PfV&AvFV)CO_d_A+(6 zxrqy+FC|78@}N~o9w&l4FLqQz%$%)z=a|4v6nRa2 z!SK!*soS}s=E0|YGgyRP)q#-Z9+LZ#1)$Io7tNSli<3S5aiBh zr5h)F!o_c}0EkdEP{=`^jR2Q;LO!Ay2S1!S_cQgT16JzZ_&cwEDHo1J!^MpU6E=W9 zedoNT#LCZjB6)L&PPbiNibsaPZ3ZCni#Yt|am)UU`(fP1cuYBS!9BIAaNC$hAQL$A zm~VeU5b4^Yh)8K4Y}9wDtmqlG1~UL`h2jRu?aiCBG^qM3GjGgi-ld|iIZ`e%VmY3? zVfh|z2mRbAM8Ph$?MT1{^CnyL+ADn=u{!4lJqvgeuUa4UoQ!^lIQv~gBW=9=@~RE( zKx&-LoH0@1;Akt6OfYnT&)iS0=djpQ$6?mfriLbgNPw23j;s{fEzgW3+b&O=mdj2! zO!fjXJM;~+pkcJJg1cLJB6QU;S83zRzg<8iClu6~;pjU%IYNkuoV_z;80n?N7 zD@QuB;!FNcG9-^=1W}^drO3W8jC=ZAcjE3Vbf1k|hR@A9zZtG72OR4#_-6Ij`(D2FfTg#Wx4 z5TjE@?6Cn|xp9IePYz`B5kasAYv3!LalpEK!7tDu?liYqA|A>5gL5qP#wVtoa(hg! z0nZsc4;QZRnBD24=_k1yTUPkJrr*!~H+8tmw^>sBL-y`cLWPfzrlTHjm?2NjI$pHT z)&O){3v_wru%m}M1@1=l+QaP@0UyKDAog%N8fNLDZvbQLP|FCjP_Ca43v}O81o?oE zHZRysqQ8-zoP9n&McrURPTrqfxDudC_2;Sp(;39RAQ%`mlPRDxdOz73$cd13`de0=Y)w7U8MqCsg}Dv<5(#!a z_^1*1@U4#3DxV7r%hZh%BDuZ2-JiIXqWeDpB|zH0!otGE6&12jcPiJnWp!_dKp;qU z=GNA#8@*AgX=!Og=~Ve%N$nvt>4gJr$Y1-Y5|!MKY7^a?@;463n`J=fzbTg8>*tIK zYLA-^+$zo}|1&~csC0DYmdPxCMng;QqpItnyks}P5OOgyHkKt?+4r5MBmh@OjiGi@ z!K^>-L)DG2_uWOtOX=r4h0>Msaz-Nf?vx_Mg5m%i4T;|Pc$+tZyKOH|6>fK1iBs+; zkOIEj)i-SR+k>Rq=y%)c?p9A6BfJ-dTZy_lWp(pr_nfDb-f5;2`9(a(4Z@JCY0dqo zn-x_O&)cm1<6|@f7(gzvX^PkL-PFgD(rgtSSEHeir<;e1(4P1A3NoCA14(?D&-qWF zlv@->U4#L0IbO9+-W|i_L&=*jTYgwGArmq;oWdprx}G)Mhw4Xe1a$Kw1>}BB^BVOe z;ysI)$G&35xRL#ovZ`{%^JPKpt?HJ%OzzeOa@P+{gAl68?NniL&#>V)MR_R zz_(cfi%K62)4X`03XX*UYtM_+Wy-GBUSjvs8;$wzCTWfdZjWcZkb29ur)wl~5~Ba; z+8k=MGaA>%e`tY3CORy1E*KrpdT?jr6R}mb;DQkQVs+H-SwIjP9GvPZIy}QZ=ai7+{RO`Fr@w2w%xglX)4c2S4qP3ImjP zw|1J`;P`lWFBumcXS8c)jWeR=#eqF^6)m6orPj@ZNIV;abPgPMhg{YIaQAh-UIhj` zkf}5>O1(w~C6DIxIY!{zjyCWAupgG+?NEsl9_e0rzOKg>{MuJAwyvQh%fh2blL5BN z)~US)xh@s7C#nuGY5(Jwau!h8LM?T-Bmejyk|e2=55QYR*Td0qR1jWy$S^Ul-2}x) z#|UbchRRyoO>;VqQ_4*{>0IT`sR8XAoScQEv%FW6idWP$4Q*pEB;@z|s%^!5H;p53 zwgv?;Fe^hGE2Yo(Gi@r}st1BB$Y8wn=cN-*4*BW&1uLGb9-t?4%u0)Uc6*{TGPB3O zLVfuol&R`==wCuflbZVgD%qDD6l)i(nw4$L{o8{OnA+x{)2oG%=;6Jri$4C-K^*}M zb=q3!r=H`De&R3tjZj{zfm&EHwaF1z0T7D&ZkgY8Y$+lh>*ji2CRhS-WdhW$$7H)?1GgtT12FZ&W zFk63o&8kYT=l-CgB0<|polULc+R9`=s#F54Rbu-bh1bHD)i@%C=Ss~ktmrX$pS=(Wi230eLnLKTau)t+RNbamTd=jgAq zK#{el>xGe2v{Iq)0IAB)<+i49ts`E~7iK$Y&g}J3^Ej?t_q#cYJyB59^=^ms82W`~ z9c#6!_u2JFr;lw=&({dsHzlp`2Nj&9okBhxdGlb#6NXgG`S;_yI}&DJP2W{4JZ+A}6G&_GbN5 zvfHNtj7FHPg4k=17+E+`DeAd1n4B{agdK1eMDiwjrv^>G?X(m5J_vmi;K(-IL5+UF zyz}AtG{^5LM|$4nKj}Rs1e)%Rf8tDh{>zgx5p%I`QP>e^aJ6iFxJu`$$26q;(wx0)(9u^YSqWQ8oJQmy}`t7qH`s$4zoq@lk!-lV$C^ zS&4F5ZwPc&FW>bTFvv3&-M;OBH`2Sm+|v+{ss1fC&Y3-)+*4~_0a00U*@!6e^^Lwy zU3sKNFX*)LgeC>$SsR^FwTK=I($7maU8wi2z5*tM+wF@`ZyVI_!O5l^PjfK(cFDf@ z^}Do#wT9+yDAp~p+b-Ev0soWaO-q@Cx1;wRLj97{f*cu135zhwH5bZDFOxQBso0VG zFB{Z#W|#Wf+O^RG&r?4V|LbVf16xFS48p2&XH0lOtWHMQMo#!D^sSHkT+UtIYE5Uq z2o97dmdtsn|B3D7&}61cY5ocLN8O|3ux8k|qsZ{&vPr@x4IVd391U7g?Lh*gbnuX* z?7$c3^~Q~r0ot|;aU&{_Wr^#nDF-VN>J zs|57ySIS#Kfyxv)$+lw{!Q1!PGI8G6RHuS+qOv_qxKu*W2$}`IVHgF%!Kp2F4z3}x zd6xmrL%dVyOKu{%Jkr;maigI>eUwYO0^KVb){yiT7LkJ-g*;M8OP1L*=5m^g`}Yyo$Edm<7p==??-9OMwTtadtRqvoUKT})E~v0O}D>+Cxp zPTylL{+%P<#X~1QTO;9){Ex@LU==E_hVA#kXjuVE=-p1qv<3?T8?V4wY3bteg*p$Nx&LM10k6C|f04dYq0SG{~JHH0pq3pVK1AXcA;Q!$e4AP$1hb zIOqQgS$=QxyX060 zq#YhjzUxN13B1J~(H>+YSK!Z3w{}1k4CmGvxFb|kzmw`;=5_u(!zBZ>d8WB?pMc{i z?P)yxqiC4>fc^?PX{n0XnlsO8PuzpR^fDlL4cRRV?Gpdjs5L?`Ivd&Iyl}vWQ)RvF z*MFzm*MFEvrhGEhU(AHthZPDhGCQ;3W^}zEZrjNwLSq8p_K(Hr+2I49SDW{XOD3f` zmcIIy&91+hJxcS<`i2*)Qqg6Wf|t;AyB;<}5Z6jVcd=~SOXL_7kkyj}upZBqT&~Q9 zrB_|;(sD$XC369vcEB&6+Spa~;Dl*S)e`#vAhFqQxkezM&bth`SLw(R=(pJ-EGR<( zvu|*xDBgh}*=~MDRHvd>O(G!g^m_DaEqEU!(92--7*tp{puua@(&JEW_>z8u)^;co z9gm>q48+?npG{R+?K*WsslI8vn$gugsvhCPPRtJ6X}X{ko9bP8I(DY(24NxMM0Wr_ z@&(<$u488GmyxG46m}7rXR^Q((#3Hsmc*+6m*|Q^LF4&1?EH|w*<`H1Bs`VX4^G?c zV?o%n-kI;eaXD3{yC1dcpnCFaa9MJknG;k!d~n}-`xqw8$AnW8w=k5{?WL$X&Rdw0QOytRHy8Bu@% zLlS5uoF5$)k2_5#`Y! z%}krvkTV_Et@zONYAccQ;4PhAX18F$QGZTjAP!dDZ?Rb$%}IH+N1D=dA!{zxZ(rz6 zMMFk!V_t*k$T;zF*?DJnaOu7q2H4H$C-Hf*BHBaYXp7s^)l3OvGbDwqCh*FkI|^^X zqB`QZ_AoS)TF<8EVnvf2wqMlmszL400}Ox zrBXnHYvmc&<-PDp8@-m2Y$EHLuv*uCxxR4Zgg@LFoNqJ({pxcmEdBQcY4$mhqpDuw z?a}5k@zpTRMZ*fn^>|pe3q|?bR~7J2oZCwLBmE$v?I8?{@bu#AkDYDLR~5qUQwCMh z+D>yl1S)auP==mbr0u*k<(}bj9!Ov%=k>6#a;VthnS_q(5!yrz_mXLxO!LPJ}-(o^0c_aSHPrNbi~BUXQBLcun2cMJD;r5>$08DUlK>q=QbEF zxH9z9^QflXVuP*z*ah!D$o5?%G)i?Q$G!h6O08r4R#@#4dXwbWKch)Y=L0nRX8z;1 zZRJGV4&KpS zCEJefBTRT zj5;FtHu|MswKbcYhX?Yl8uOM3jMc^IVFg7iUuw)40}DY9ht*B+!_W*(G;jC|H;BvR zCX{(+f5~8%V%!fKN}Fu)gRs4s!P8FiFbPLMGZN4*CnzGQg#ssWSLAZ2>yV)b6Y2}o zk3ArfORF%3%1&QAv>*1-!4G67fUuwL|7{k1k!;x?O>7dpzUC(Wc0oPg> z-~!D$dIa<}K5!ghw6jcc+u8j_^g(&ux$@eKUtp%?|zI4G$ zq)lG1ZLUk&-vdhiGa%yw=A*v`lnt8=%XcYai#yPM`lWO>lq_U`vDsqXHF>?8E12C@ znBVKFM0YRUSwCOs1Q#Ll*P7pZ`{XPWP5dCyH__>|f(%w!A%(Z3q`qZ)%2-=7TEbCT zLBwtnY3|33+e%Y7B+JM93Gy&FDr!A8vKvhPSmb2>h+l@=F2|)*2QQ2tdn^yIZ_69j zkwD?x^ywP@TColM@SB{h;uG% z>&=Q6zXO{ouPS;w6Os2pr^Rb8eTb^9teUkL2lxSRgw+i)f5EoSyiVv;Q|A(EP~}#&KD0gn(B#j3NhK)Qlze1P_DZ@yb!8F0V#>t; z8I!6}IqovUuaOTn8W<$;ueeSKqmsW0WD}Q8KUt2->d?2p5@hXON3ILQtTe;uKdkJ! zhK?}%n8Vf}iEJD8%Q_Q3VLuG)SA=>f@@Bz@<^pOGyWeDNfUKH}?c*Gpe4asW=ormf z1%iL8#pSEuQk#h~EHf)W>EgROHwIX)I1XJP*9u{1AV4kPiu4zNP;HJ=D(L)r(SBr4 zr;`?WcM12ZD=>s-&jH~V|G!CZ)B;Mz*;0FwbpBp!ig$*(%n>w>8X;xN#`&RpORid) z!1CFnfz+93W+#gjhl)lmKc z^D$F>ZtsVJ^ySbbKSnbnxnLS7AFj|aj9{~X#eUe;cN`PNg=Ty=ju>zz_JNmGuA zDn$d^vl^3~_Mmf8^QjAWT$ZNL0nYOvin z6oz;~Ib6xbFi*vPi#tr+tlavg z;y9x{14`S+qpLOuP|4`3blGI?UzHFe{=gVdgHx-vQ0-l-u0pvx06x#fFJ}_lj zzho?)YWC90|6HX3KI@@7_9;Xp+ssSUDdyB25!CPjT54UPY5rg_i4+3VG2u>K3@pB> zy5d>6llkU4=d@tyXf40NPv--m<8SWDkR~(^OLs+2AXUizlC!gNP|;?^cu>YuZ?p`@ zM|uBvF)|Z&q4bq(jPAa?a!7VHoIkBc&eLR~b194sdNH}fU% zF~+$i#d}Uk6 zy-?Z655drB@#iQC42j6MU^~ghqJnh%=6iaaw=nRf$J!NPShr@VFS*}kkjk9RQNQ2( zJGbdjU@-8VEeYrEMGg_z6y?<}riG{L1zCV4>cBTh=XV0eKs=#EDe|8UH}k#f$Y6M4 zmrNKyhPkm1;I4xgy!-xoTGRUOXX3urGF&T^i?g$4n5r;D97sENV~E2d4}bk|sxLu{ zv*o%G!J#nMbG;Z2Lo)7lyB4H+m0o=j;DG{(+Rrk5h^o#y;xKE&fLXC>KFViba+oOm z<{I(uszN#xvgLD-vHYd#GV#o0SUwbCZLg=Rt6nOVUlI0EpzEY#W&Z%~ecRxJ0o~`H z8je%S2Z+=SxEBw9ZSSa*pje$B3QR6Qd!Hl^qhD{-;F~&xA+ht(FHn1rJ!s~L7aF`) zWV%iJg+LV~>>w{j_87>edW&=sbb&sft+L+3QZvH$uuJ;$-7Pxl_N&L6wwJO>326q< z=pvY17{Is5V+C5{=2dE<~0)7wGw9HpQIMr4!Kz_VQg51IRQDH04jps(Nwv>xuH=xCJ_KY z<&_!~<30dG1dSv*V3{zm5;`dYBj4j|oH5pQts1x9Z4YV~CmW56CI9B%ZtOI`#FKen zYfwsr$Mc8@N2f8s;3PhHTg(f(d|TXpAyl=> zjvc1Oo68B=nM56rD`m${M4H={qCfjDM^KYpHn*iAyVS1=O0{m~QrYdQu7f&+IZs(- zCla<(=cxS(3{IWRRz6(V*rH7r>anRuII+X7q)9Wa?eNY@>&&5{8pE~(ihbcgJE5!e zft>8)7SKx`*mCNd7(hV0-f81O&*yJvJ(FzR_EdL&;`LH;&_y|d-YG^D9`8bivY_91 zcAoT)RfYc95REDAYx##4#J=i=xeV_JVuYnYz)*7?4-UCa3a|-;V-y?DO2k)rCpup# zYE4i|8_qTHB_*2C86zU*i(&e@?-A3@dmQX`LXS#1myXC){~p48nY5Gw%6bb8rbP1o znhz_L*dk(a=Jbb^PH z;|3^+-{{2+_8{@Nj421uNT=i;!7Qw*cP2#sBfUlh)F)J`IWMIC%T}x$Efg3b8Oaz2 z{+Er|%&9-LfGv!r?Z55i20$}zh1~X6EW-fo$)q$Vq)2fG8tc9HV}m9n>U$ee$}jvcMS(hQlJU!KQbkpU$_tD3 zCBqRMDru?K>8Ab=lZ>*@6ZvrZPUZFK`;U)1ej6$adu`8dY`3$9f^`eHY66ZP8w4G; zu|%Jwg+e@`0$9L2CF+*H%^T(@m)?J>3L-W`!?Ju}Y>`7gQ66bp~Tc)?P+cfTaHYt|CS(Z+%jgZMLxap5w{Na^Vqm1T*Oso~g^fSz9F zV!G?KI@{%bNs~p5^pC>%L|q-nqh@Q=*X%nC7Pw0D3}HJzzR)F~2g8D)aQUwAbTJrX z7xd)7W^+*Xe9O(Fyr5-Ybe)%|g8q{mN)JgMK=ti&9fEAqNwZdi*9#>fGdkuO#qJ~| zNO=H0gig~`Cc#=@vxN=eVYr-|?=4cxgjWx?+3@p2$@pNha^vB=Igm||Z*^VEpjlFY z1xND>D&$NIeRKB2LpI{&s={xB_fWu_(Cw%;GL2b_#UzqH3;pOYqtEqrw-TpNOwH%5)~8fU zn0XHMGS)p|U~a1{BI7zb3Np&im#F#Ehn|j`HKJuEhf9(4FJ*I!9#XTk+v}!x6F=m8 z!+xTX%ck&=r(|-kfP5wyuy&VxF+OSYGCl3V6=&|r!Mkb~z%EcLF)v&42&)uqC+dyI+Ft^c@yoKS@rh&)~DILM3QcNpzL zZt!CR=N^t!F;u@LM+HOPCy7ydO#<^iwB@9$NeWcwaR3IB0?lApI2KB?j|D-A(?e?J zWuZ*QUPtDpeuV=sqcx`3XA}U)PI~IcLHhkwB@FKLJX|AX;`{Q}`LmubH5mKtxO`w6 z7+Y$hJh`qNhCA4}oPQ!0@_ru9!n`NJ%#GA1pQ4=@oGg`(!i4I><$h9j|9n}%T2K23 z!+F>Gp!5(cmETmc2Xc2CWLruqA z_~P?0dQfq2)PN;Z33R`~T97`r3e=5%U~E+znzJ7XZ5e)Ab}zQvpA5BEC;U3*p8Gz@ zxT9EJKlejh#Ao3Yn^Xpf>A6@Ng}7cFO5V}S!-^lm0=2A){eaCFYb5A)eDwUm2*Agm zSYrZj)gnJMZ=4#sz(nsH{^hl={^;%#`(A>k63a}6>G(3r5lmg}$51-JpMM}ldy3r| zK9q`>(GIUK+$T3VE>5D1LQ!KMqTl@exJ9uR*iz|{^6(yAV#1}5v?&45`P5E8Av{L2 zY$I&OXnOcd%!En@2^`NWwm~a>M-*|{Xv?nYwsd*XzzOYo%32Bue8nPy04ey9-4w-1 zj)3BOrFGJh!!#9kl+yV8<-1c|twjl4Pn`-CfH+1V=TE46ryiIZ>@B;RdN9QCW)020 zdH1fb^=_#6^t5DkGl*Eh@;kM%w&K!K@kw#XWb|MT+ily+2iE2JL^Yw>iiYfcE$5~4 z&UgCuu6>UjZ|Yad-&!?GkG#&OK}ZOxSisd*dT}goYu$f5G>OOOZ{^nEV!6HDFk8(} zy);1d1GZ#7W!CEl4H|M7Hya~f% z;9x*pSLeDd@8R`a?a+3=IrDU_tg4(wV1>6xg0s8|xheKcKCn4`eu$6li{kkz50{%~ zIK<}X9za547YunUSx)MUsj0{(^skI-rwG|O|^q=b|29` zr;lNk2&?T%CQ^-9UW{0~&phO*S1Yx#B+Bh1Xzrhn0WUUCBs|*@Aly7uKy7&9!ucPK z-o63{HRk9tzh&khQG*3Ql=hPjFP8b{In!w zv(-qR{wX$tgAY8(V|Sf_ADZj*ylCl3td0wFyRysa`X1M zN$N`5PO`^xLza6F>!Gf;h;h%dn46oG|CA7XF3CoD1@E$d=kY6iY^&6x15SAdN3)Pw z!AVI~RWykc!Q8&|asJF}&yi(3_Nluw{gf6%80soNQgR+cFWfSZSS9XkEa} zpzDK=M*%9*65MtzMjm}SA@A(*Wk@5i%x!FZojv?MIzY!EjY|vI5$J|CSyrb&R8qRW zoE_D*??bs&lyGiNLvA@&QZG|P0}(c`Zb|$+&VqXqAKOxJ>24GwdRYy#P&44E5M-w# z+X!&i^@n&JI8s0;l~}_LC30&ygI-nk$NQ#gVHE$%)BruX}~``ZrzU_d}Tvm0b?aU5l7g)oqN; zeFpgV5IPFlw|Pf-A~kzjhNx2?Ky}7h(q9`(w^yYU;WfufYOaJn`p9zbUgy?mgY`b5SA7I2={=()9iex|vyBa)#fT$JNyu0TKO(PJ1>l zFZu?|T#DNgGB3>e!ec41-7lOXMdDc)*V46+Hxzh-uuUaGfVs8AsR+F8%Vz$@PY_f$ zcboCj0;aV@;;sLtSzv0CQduc&uDXbI?Wq6)nVpV_PkBGqO7dh&Z3{-)QAe4M6HhZr zoLgPyAu_&uy+R1~vu;(7?|mk)Ivw5{dnn*n zet?|)8o$g-yuRnS@E+9idKz#4E~~P{W3%Fs_r9bI#}(L_#O`W$1(5|Qr_@f!RNV}7 z?Pjj(thBJa0r1M%?Mz|_ep$id$Os}J9*2f#i15Uudk37Lh8wV%ellY%@MtiC9qBkk z3c!oj`eVlDD3gs`ly(V> zz071v+Z;UM>X2Vwm@%Y}TE=23NPX6Fx^5wXDIjf zxfLsQ`dIf-XjO#|SsBAk2F2r4&~#Wos3$P$e#}Xj#UvqjM)c5QNt{?6KZR|eRr#dZ zRaP_b~{&GgTmRC7A%GzBTQGnufGH`0y7E{9bgTlHyvGTs!b<}C9|h*J#Mob=$T z#&>Y7ym(G=bs>!?6jfBfL_N^c^eL7(y4+Ots^pdZL46Vcv~5C9mw5h3dz;qFedK9= zVG=K`l&7l-)c}3Y22JQ3Ud^LgqStG$|1u|;;epq+Sm;rNf1{po#D2LJ6z}=9RU7MVom(sS188(b*Otgrj`62MVe=8I|B+!jq+=%? zIa@{pm_0;{lkc%?WkMdSaTMylbc3}`cnsOZ9GdAi-G1x;!j#AwF(z*Q{l5Twfb_f%kL{3~ z{mZXoF1EPlcy2FG-CEK4=~%KTvwFQZ%vJ?U^-+=oma0+OM>gPxt4*LROh#0W2bvK9 zNpKwjy5Pb!Rz2WFQj3BhjXI({IQEi@^~UhPv%L}ZuGmDd`*&eq?@?tH5CR*!dfy#| zKy+Ja(}l=`W<`h}ifwwtWNg)#SI8^eaWrdtVfAoxv;YlfZUyN-Rjt!v*&%A)q^KD_ zLBz#+1dh-Vv#=M|E~ef9V6Vgy^fTH`#)<2WxUMFVL?kn|NM#*ca&m(_r!L-BHFSmu zyg6%^c_}TcM{8-=3*b~*I|cUxK-W*U59RHu6-$*3^5fSLl9~{h3`82UgXs?S8RYVI z_%rs8pyS%-=3}HUA3)E=$43vn{Jsb1#UA1C#Gag|ejXfX{;7FVA5Y1Mz6o#ik~QRB z8H}?xF~m+8s^&6CKJh5PWSH~c%zAQ=AK6@Ow-J86YO^qp$94I#G+iv#$3hv+10_Uu zCb83>PfgD6 z-F{`BSw6yYTwlf+mo{73ENhAT=@0wBCp1NI7yG}3aPi~Akno{*x@jcGyNuzb)m{uM zlTb)-45#wHSHS9au5*8rC=6e)xmq%O=fhtgg4352|Y#e7_v=RDh!?NBEnc zzy;}#SI^HkDMe|{hdGO|rBPheyyt6l>a#=AekTptxEbK^1_;+FiXIy~Zvm(vP34Nd zsncBT*J#P>yPK=rsW#8lpR^-&dk{l^v|xbCw%aggjz0jAccs;)iKzToyspn{)1CsN zV2OJ}-vEly+ez1bDyHo6W98sTYYl8A%4j|bv_5BYj{;p*Zzm|*^Sce>w;6{4>eDA= zXPg`^;P}xEEOssoJCPPr&f}UMr`50b%M{1+>v!T5i*K`sd&J?E8EC_tmbAj!6CE3! zEseXG>cfq+1G`}PcnMstF)~uwpMId+Y>FnMxF;+bC)b(aWdG==k=;1~e-H zh#oRngYqgIrQ;$0#<{ITLz#fR(_TIHnrw0Oa!(m$ta_s1dBLirDU!(nkfSf_QqgGi zdd+w*ydD179u1^a5x597xBcttle>eqEgT|95w6Dx%tX4NJ0bapNDqCu=S{cK;nIn6 zi61~|M)6#l;bdNF8TZbHrJ5w?92wcScYp!h1q~w~prs~VIL*lSe>WpEm>5i9`B+ny zaLFQvm_R5VwG{`r*ESpdnT`b6c*W*F9>%9Zk8bWmTjwgC5hu;ZP2-0Zo@|^^Ye7ye zv*IH{^}Se4v%;{Fbi>d?yxHr!`41smq;L=vtC{=2x>6D>l-RC z{>FxB@`oMa9m9*GCmo99nVjD3&~*y(HtqPbZFb*;aq^9ZUwDM)!~|EajW*QsM@A5h zqO%MSSt~TBJapBmZvyn2JJI+!&26t{QB6l7WO@Xy!%b0qP5n+wG(XTOkx}Kk<}H?% z1<@G?*{ZKlPf%bSok(#~9tLqhl3=tpkquR=ii6|weMkSb*gAVrpYD-}%i&Lq=j!Mk zbDJF&V-#~vw{o9m2J2q7Q!Rm64|pl&$IP0W9Yp1k+J4y0-}JTv&{C zze|o5TM8It5$H_s%IXh|dGgc$wcRvl ztR5I+0u53(!~3t7R&)bw#U^Lk1iK+9X$Or_LAGpY<)%d`tr!$3N-I`@@G6& z);)~Q_3E%eZIq-py*QeyB{Noj)-CebZRMJ!YstHLX5+?nS4d#fgH^FfhJ)aJc z+K%60ROXCCD0xIRKoimII+w_Td|2rDn-(7Y--*WdjHdG*wgny>)0*YdDLHi(=6%88 z{+4C5ku72{u77roWv9P&)FeeoPb76rbHHZ^8a}W*7zcYVgrT7tB4A%<(B<#`y0%$u z4P-6PdHu>ZM|b<$UX*8XKQ*YAqb(y+3|82E8N1%LqKC$O_S9zFH)2691nYJ&3J%s^ z*B_Oqx^_ZScB4l|cBOVkrDx)$!VAuondi7SWNG)xBYYvk%HM};>I>iC^tED%w)B1H z-zH;Z#|q20U?qX&&)PL^VaeZmH-ET;^3a-2RgMtc(5aOoR)F|sga*Gmn1rP9Tg^k@ zyKHCQqs5)khea2@<+tfBr{bsFlaIQKPCQ668_N;uoBWLSP(!#BKwQwU zrFTt(Js0wZ(bb_J%ifcqIMqieU)p7Uz)x!_9kQJ-v(l3!ZGHO#NRPneBunmmep#tY z??D}Dw)pVajEY@f6-~)o!9=y5XRFSp!^Atj#c{hHMxCN}KtOJUgC}v$97$$r#aq{| zTB7X-8+iCNh95Rf+y}5{mppHT+L`PQ>Z@9~fIahXREm&!|7$(nB&FS`!5rbp7M^b9S*d!6Fm1Xsj7U#C17-Gm_BWqpG&STOm^=VJd=@!G{+jj1#hoRjV zdv;ybMRE?Bp{NDgwu#?ko=qG4gflGFDzowOHg9CsiaRt)l=< ziaS2H9i#K!@=-bcmQaiF-LQAYN@m!+6Bj%=J%A--)!3zXvZm<@q^~)P*{%%BM&4wT zeT^dq;0;CN;+%4UqeRpLok8=%P96%)^zJQj4Mmniy5W=Q&>LTQ!!6koz(*-cw5XYJ zl!rNn^MUKz2p@j#R5hLZ{0XT{<*kGi838uqtiyUdpS0EkURO@KvC@tVK|_(nT{QoM zd6AoxPPW4&-h)tM&wJF=BEL*Xf#0_gv1yzISPlg7(ExS%zs513KPTr}7|tZO1rA&Z zZel;^=oGCfsXuo=8#eMZu8FJ_(!K4(4On&ZV@;4ldlB}mmhIM(lg2ACKYK{jPz2hH zoceKW_gcjUr>@35PCpV{|E-hJc|@!gU1?GcH+_PU?MiQh-$~8Un%tVzknK>I-$tV> z27tp;K*@CI)|c%Mlm)9DhLCS*45y`@X2f@KqZBK8^yiFrwga_0?)bwPFFVk+(ow~) z%X-4-%)2(>A?{0pV8)2n({o$zosI3dqdXiYOvUi%R;_#_#F^Y414gHHYO9I2iSHp3 z${O427v(tH&! z`KxwpW;(Y-nJ3(qmB7)Mp1o`78e}p|_;=O3zJoGi89(DjK%stPGekpU*%C9qw^#DD<0!;^LVpX1 z#+~}TS*UXLO#)K4hnZ-sE9smL<^7AH?PVVOrO|R_`E;Yi07aEt=2Xw`ORW!U-X~*^ zryhkPoe|A261-r*g8;h**c3NYyf^BJl8qX;S1&gyQpo;6 z&{@6XobNF7BN{;Mh3rDh&v%7xg%*rXp_DV7i~h8;OZISV%kW{9Cpag%P|_&y*OMB- z6e^TkI>3I@={aEDL8N^O!I%h4zDzE^u41iITn0`2eKJq*|DmXI=q>1N-1fi`!(Yso zgJB`b=$V5I2s9w(zUm@}e#9XQFLvD4e)RJ%jeG5`-1#L)J~dX%R~aUaZ3&&F-+8Uh z;bS+gyBscygLWyX!{+e(u%)(+ZC|kU=o}NecrNYbCh@9gDm(7CeMjyE9w>i$TVJyO z(Mv`}tl7DMWQ#Pm<}~g?_?SG!(p4M=F1B`O9Q_s=B&Mzwdo7Q57cCyO6j@!#?@>;> zH&*o;L$kOAj0UbWcPlQxRZm$*eHv_r_U_DMobT}`sAB+3Cu1~?rNuD1l6h-`9ZC~j zqBgrjsym4f2fDbvh_mSv;9}g$DyQ*OA^kznk6+`Dq&#k<8UBnbAajWN?1{`LyyIZyV<8at4H) zYB}=X%G+Nyf(8rhVBCnupq1ree?W~RePg*qBkB>Nr_e zk`BD_kVfkI`NECCYoim3L?==!cSyQ3%DhibajhH81N06~U9AN6&s{P_f4ig&?VgL$ z^v4WqFn34XWAGt;%V{^uL7r4%AX z4DCB-d#~u4t%})9z>-Kp7hu1>riC8hRBG~v8vx1`g_y%nZc(qC}ZqqXPcT7 zgaJN5Oyb(cMH86}Hp&Zc<8Z~N2C}u$H>G#ies6;|K!_6ZqmG^C)u+Pdf>QD`Q8Zya zlwyYEAdV|Gi;w~9gcjK(Xen5wV3h0fnANt8xk@xFWZD*UGV1ZcgvPx3E4$)u7vk%G zr12s;23?DFecaUiMQh9Ty(|ZCsTb!h?ipaWrz+#HkwVL+>B{u>!i?%rR`G1pRvY+Q zD8^N&urh?gkQ3-GBnQL$AW9$Dp?=p zxca`kZn+h-sEMynstq3U%JSelKwX*7kocAXvz$e1KdMS)nX91UOwm;RO&~K=@Q~28 z3p&P7=7JbvQS&dMre?3E{t?~G9?LL-rZ^nql~(6g8oZzN9BjX8t~?56Vn>_LYzxCe zqpk)+on`$FQs4=wwR9Q`4c0douts+iiy!9IZx5@~zrV}o?Q}SEbdsbx6bFB=Je7Co z$65+QwLPtEzDa@t{YddG3r1^Hfc00P70(hgr_lTsQFFC03WHNO0uLXkWA~a@#o}O5 zGci+BPuMUF_!+Vy#->o1kulv|-dlSCe%~=7_PMyLslD`r&WWpz{L)0&QcmMZ6VbXK z>r_9dv|)}bvMeTn%J!;hFOwne6X3)$D}`KpN=Yw({_$p!2+Zs)(QEuUmFYx&E7n(F zKI6Fs5ZVYI{a9;X)I^Nj)q>xDG%g8D)bf8f8dd5+F!mE z`hI)kHBzhpiP^ho`j26Xk(BeK^=JM5*+}95(H4h~J_;={_#!wkEB%dX{!LT=Z*g)V z3nQt-;x>uFqs9vPkH4F;ALw+zQr+`(ZMrM$RZ|gk>Gj~nerVp-@;qe;9;AoqFoeuB ze=5TJo#A(;t{VGJgq*d0tb=c^Ib_;B!8FF4+cmsf0P-M}uz<@y5hw7^g9Cmwi`Lh3 zWb&8P+S$`d8$KgOYwjal4TT5p$l@7A?KpG;*&Mx#L+$pGtvKsp>!_p56uRGMB6Y># z2Z#z1cFNX;SAmx|*I_YJ4&1E$6x|jS8AfcyTL)yI6e{Q<5d>FT%%lI^ws^M(pz9GP zZ@ONxfgsD(67>~w8SAREh~fTi@@B&$qd9x<19{Wccx7ab` zR%qw|k3T^F{~U&8{n%!C*6C>#g3wL+Wy=OYyO}!hByz@vV;(iyj=9obeeX>3XoZCG zA!{|H^?HkZ`loL{QQq;6iE>UUj_@@XCg?Gd;sT>$Eie*FT4uv0$SToFgMmuXjlSY+ zLUTvigYcRTn{_5XeiJ%JeAPfol1jae!;0RP_+!Pouj5k}GU;E1>Dw?rUw7VbXV4q& z^Tc>VCGozdMi9`>u=#i)p45-kJ5Ixlys_&{KM$ERMc05?;{Fh> z1s$CwZmBD->P!_Axx3$Cw9@J#N?x+|d*Wd&lc~&)tAbY?X-)~^7^FO*_hVqYG~WEv zzDyMzgEy7^SGbzh!Hi7mo>Zq-yGw;=H>kzr=dBFhDxb3xQj8P7>%HVXGQyxqei|cw zUI261X@GbVV0<}SN%CQE7VS1pCCvk%Mqu}DxA9fV*j zQx@eu-#TUZRITU`pbD@lnnN0{EB z34w9JAu?50G-2--8q*triK79H-^QhhG}M0JcCmts5I&vdfEJwHF?RJ7n^+913yzr@B17Bp zfP{yd${Tt8(dI?WWjQy7zluo9KXhc|5M&ttE|h#<_maZuyiI>&Sg!$nxTQ`dxk ziDH?X+a2e7NM84r`;#eLe*FY3x6k(0fPTOzYmy<+v?pNpIV%%hno*Ah&uJG~YkaoH zV9VW>)`@X*?Yh94^IZ3SPe{dD{fkNBCdn->qxicKK&|Z7W3F~9@>2{A4J2aq;7mJ2 zMZ8SIvHCLsQ)$y3Nc|*=4c}W~c3?V;raX_tNL7ln``0okTfdRBIn&12MZQQ_q`+Zx zM~}%PM*fc#sG8oIY^9R^xF)3cJ>T`bzRiA7>Q25iR-a< zpL|qH`B~cSUB`=-Q+4voSAjxd5`4UcISa9xT59E$?9P-`a*wM(vXpaSEj{@%=WPQ{ zcd7#a-g-C(lfomWS-!qX2LZ0!uS7@)w>%8?GaY_Et%gK zXNW$(22H1Iyh`m{1Tf22&*t%{q`vKCs!?+e_8x9ql^fVK8m+?w z8@fcKU)@w|OLGh8{AouxbDpjCvgExKOV1GQ2>x)F%j;T94!Bk;YHQbomPk-R*?fah zmFH{(8e-hYnUp?LC46sUQ4i*#s8!ddS{?Rzzm9hA7j`?A;aKi5TUpAg);)hQQI>2v z8RuUp{Sn(C=K&Z}Zg$cbvaKQF?;k&FuM zhooRo8a)V0{GsOdZ|iP~&9uZb*=d^gzekGDl>!lr^TtQV8p&Z6uF}F8l=|{G@;&S^ z_wlenG+R)@wOtNJ0c&)I+lqa;>x|Mk-GAOJVV8w{D2gm|iJc$zw*yU_u5vGrWf&!c zs!LPMyU68ppU(oc>$|TRsbq%Qj>`XlH#Ua%N%{XhKRyA|5u>d^KSl9BO6BggY->C> zF1%_sIZcYtHo&8F4g1fbr^}Bfz(ER4@RXc3gZ(snGcO>!ITF=d5!$91`$BvxbOb_3dY_^q!~f41JD-8?A}*QJEahLCLJyVAoD520kx(hj@Wxpgd9m{T`t5&d<(O_(^oudc3u>PCNzlc z{2eAfsV;&8W8a?F*Ees#G&?MWNtn?%XvTtRan@V~FKBt(7GN^L>J47&9N6?a~t_|%f0`j;^f}`2A_+34YeS$;= zmrTs-p38N?CQP9K*o3Yu6XQRrWuCB{$0RY5;-C>mOB(Ec2&y)D{1gn@G0PjrLTpb2`zom0k6%`2Bi>?U*l@GssdSm z_EP+$N-28P$FBO9jroqB=_FAC`j_dh9!-5#5Eg(Kv(X<{a)G;I0sLfTgab?22pb=D zgD-wa_M-mQ5|w9hL8jk^i3%{J$Q8RDk*Ps@(Xe$+VD|0sCc%D@x&R5E z3$CaGM;q^c3gQoQ2DOZYA{hJIr#2_mvh9x3-zlne?(VE@|XpO^l73C}#Z1{%~ z#|XbWm`^*5Iv*fnhyBgQnl#g?wQ$+KsqrbZ1^-M0z zJKqQOj;gGe7zKdvs0JIr8|Z!90&Fci==g)*ZElpBwR7}bWL$+k^sD_=QL{UaUfmoc zHn)|8Y&YFv^A+3vO6N5%uQ4>Z?8wx!I!F#Vdfhm)u~P5~13l~0jRk&=PCov2#B*l}KpK$}8)T?T<&g|^BiuV>*>hJhO{rRaC5 z-m)1iHg{oXs;QKok~ZHf9ydtlijBo|#+ebaj-H$rCl1F+vYk}qsHJ!fj;@T=Sbw#r z9a7E^9gy^`KMEMU?c1TL_|{TNL3e-RJ?3q5m_LfN?jQ&jbkF&gJXl$Cx;Hx^@z98B zz5T_pVnN&i>A4G{eK=9^49t!d&2C$)vstU`D%V=uiL&Y2VTt#zZ}VDLGghw_yK<6o zTA}j#rDr*6$T|@-_x@_p8_6`9N9r(`NB@^|gnlqbOKM24egGnv}L$t=w9*qWo%~I5mv8 z%@9-wLsw!#em6a?i8p63k?p9|3(DpOlRe`lM+w3!3}C7NfG3X`XwJf2o^q?>C{!i~ zM1B5d5R_!~xfN=b#FyH1ONfhRC9 z7+ui6uddl$SmJE~5kNq?PTY-C*iaTWqp5{=a(?H73WovU^n71JU##)vDOWPIwn(ke3xzgQ*r(fx!lL$5`WBuSK+sO*guMV9gG@b2VO0AN5 z!g#CdHdAb#WKvQ(Qp2dbA1|M0#TFjrK_FkT@X=$tRxqAT{|T5oY~B7PMOXxoCNW^i zr{quN-PPLT5TN}{LrvDjrpW0@??tcW`kOn0w}RL!y#_v=YxNonEok?gV>!O!7(vy% zyoElXF^$F83_)#+E3mmefxww4Q;_HjyC(AeOpzrp@pk0heE3fDLUMPFRO+$_txW%r z9E^)xk_A(W4ANdVN0c>ZenSI5vz*fO07Z?#0JHV>qlu>opX1wZm#=r3h1*wWXoOPFXXSusM*?DvU z&LeEb$33{hG*?KdTh$-0f)nSU)!n%UL1#H6nT6}#cVvydB;Z+kbA8{N!*-pP?W9hD za&*saDzLUOcItX ztW*msta;p#ftpOBjNJB>NOr%!LYZT&`+V9rT3LR)`CASA({|t8>sVXd9y`Q7vj#Qp zW|=wM&WpLM$MQ7l@Wuf7`)Y)!eEF7-*cG9Y~2VeCQ+i z2G#)oB0KcJBRcDR+KN2FrRjbS)1QOLyJ}~8;v6={Q5fk3;ea>%PP`9`C9)1*74bhL zpce2nEVVQs(46+G9wJKb^y3<}#1lerH?YGp89LFrqt||O*k&-q{-l;SA$$?y2yU`M zHZMXP>#MNGD0W9&bg?|yYg&_z?zZsMS`7)u)UJ?hp9iX?;rzu5LSf{qvf zTrLuWFUagbEbQw)=OB`~3{FuzNTa8R#68&ONh4Mu7O0dE%kPmR% zj{T>e8*$8-gNhmdt!KTNSg$_a6j@4dby*ni%hR8m#)s@t-^XP?V_!|RIxO`27igsn zutZnL0DbQwptGS8Yokbbb_+{iNE+APODqii)IMG9_e3K~56;NUV$?E{vwus!In9G( zlGzSjzA9>7VaZ$ntL~IYh4XhyrzBkbwomNqiX z;VCMe1Ec&`!xPDDNs694=-L*e%5?8hz(|9Hva`fxw8z32T6KRsfuaeyLGycQcC&5z zCt916lw)Z^N^5SLe{2rs_-9?|VlyCr%E!(_c)Vt0N=7ncNPg-EpQu!MDY|>aV8w2G z)HTT)06LTr3giQK{df=FoyIfuT#8Tsz9KMw>5aQXT8e0ByhQ)Dcl9(^4T8}+-f~C= z)1}X-{LdbNjXs6Lb@h5nK%s@-Lsv7Hkk)kb8=^{k`InD&>qFSZU{1(! z$28L)NYc@X7uN|Q6Nrp7`{gBiw2d>HNk&s4^iD#{)95BFQZr(c3?tJ-{KHBS5#-o+ zTwGc#34;LaTlaAUYmeHI17+nb+b@x=tJcejvN^F)X=`iS9iQ~yddP8(^u~Sk3T-c#4DsDd zwwx8(sLocff6|P3H8iiJ7Cx1_c!vfeL7pun1gB8Gei02tyee&tORglinpNsjdG#;jJ zQ0o%S|L-{1S|MDkL1GLGAvNx;+Mm^spsH;!gpAyP} z9)x(#H8c`G5 zcHLXvdU)&v<7O)2TU$Ix4`N@|(fs{`_U!Ej2adPQWUB<_ZF0Gh|E<`tqa)Z3nzTOo z0oZ;K*IlYtwitujUtkG<#QN%~0V_WA5isE54!2>WBY?2cc7DLREp`mg2l>bscEaO9 zDxeF>$NNW=5{+-gjN*)b-d-eT+4%=|DDaL!j43mv%PS(YqB(ks-`{hPy**q~oIwZZ z&=Fl7-mR*oisue0z2R&*Uw)?kd~%YdDHZGo4&BA@54c@mW(8qhubpK>ht6Wva2}3a zzzz4Ccb?^ct`sYU9hGNoX$WGMiise9S&2v|jgP2BLp-pG{|Fx0W*}_N#lJIp=mQ?5n}MvMBZn z{#0a9Vm%8YKJWuZST3_;3cN{3@U$On~}V zOJuTkO#A(H|D4%#t8(?_{hgS9F39*Ri|e0uv8x}Pe zhHe>3wu$ytX^+s=Mi0-|5xa(Z@R5?;c-VG>I7EZSBOm9Els#al>4zr*L^$?-vDD{w zjEvg*78UA0YSWZvOL?ehqgE^5Eq~nh#giNioQ&d&O81VRvR)mhn#!=(2Tp$9WkNb38!}S@TO|J*eDu{SKe7#m7HN;S0>KGKy5a^x$ zcmcJkdlq|)EE+rda}BR@VHL&7HrL74#x8(#%|Kk&0F7!qjv}J5$$>n{8tTkfxY$-B z=Q({Xk+TmXq!sv)^DzPYFDlVrx&-kpXO({v#%Z9ppTAZPm$S+QNB7eOL2?y*LVTCN z$SL=j3@@(0=)bk&s9dF8v|0b_L#38WJUb10!0f9mIPpfK(yLD@4VFYlP0bop)`r2a zG|4?Igj$+5&bpt*ngWD#PC%epn`wA}vN#dm&z7Al;i`QxQ30biM z$(=dLr4OXrtSlZt=!qTGv&TN10s=%M_OFl{kRJKLAH~ov%>@=#wH_63l%LIhHy@rV z^@jY#8d7ch&nyF;o+>W>o}>AiPjn1+2nEE8EMhgMnzdH35UL0FES%fMj4a=KS?qjH z5u4;|x|C+^0Y5(6xu%#}wy@P(Tbs1z3OR3!!2`(i)$r5;-vE{2n^U7`;BpeH8KSY5 zHO`wVjm96#MpkYh2fB=RRJivl6Ofhe3S2x6{fSuf;t$gZI&i<#*Y=9wyKBdG~TjxEuoW(#$tK zjjqsYp5a^$2leDOF70bGqfc&3=t!Xm{=*`HV$$wmw_R}89ilXn-Ligz6k2dbhhh56 zY4BYEPaqD#>>B8zy?|SgC2%$dd?>ptld`$fK{2+8g>f)=W5iF6R$ z=bn>Y{F5`%>i9er&AEFG{2ecchZ048ZGzqRg7`gqSs4DK_`DJuR=R(j;m-feng0GV zbj0Ep1Sc+rlAoMN3l9iCM2`_H$+BXu zBvD?m;h`4uXO1-bx#<-O+>`sjar^T=V&YMA&La)<1{f!Z#d-iI{!>2g=;<5YoS=po z90a$cAA=TE{E%25={z)_%dmZx1qc?||6IZ>7Er^2TiKB#}CFn zRkfjI;m~wW!6FdHEub|!%fWslbI66HV~QYa)vNl8T{gLUnKWDuM$kTw8ZFry7%U@* zfh*mK(C9;tUdtqc&T_t!iBq4#h?!kNb}$7HQPBC}TqVU4p#^QGN?HXL48S6L7B3fr zt{zVMz$I}T-`A|9wtaz~X72;v)yylJ(d`{pgXmpWKt>VUKJ(NF+E^1axU+PQDO;Q0 zoXFfL&P#67a5pKpC^cD5CN!XvZOO%{8DV#E{6PSt+tcA-KS*qqEkForbMi&|95t6u zvU26r?^}^V&eS}wWTm5ke_z+V9XHhCaj5CY1|Gp#i%;|eEG>-flT=ca`Hx>+l;i|ah&DGAB^#i=N+WRX-q*67YAPA)W3m+VzDr@k_AFD zmeL+rxmwoam@RlCwJRM&s~Wf?hH8+@{W}U_YD9#0vUZcunm&+|X9TZ@gluh}BOgwU z7Mn2qwttKNcidptZ>j_p3|)51pbx(uxu6K_J4)gP5724}o$^_0Onb}{PzM5_xzjHzP183Q%ufq(e*i- z577E}I|}dd9qJ(Dd724NZZYo6H#!pZG;2NWLro2F+FI!U9+%avOfA5>JYB5d_>c`R zYcZa^f|M^RFv7}2A0Qc401Yr89F27mpAY3eh&wk$iB;f)``$eWg_En zf_4{4W3E@C`1^E8@Ony!MBXx><01!323d)-IcyJMQ20l>DG$#1u3%=5;}T7?`0?0> z;|+Z7GHTNk>%S8sHf`_H>Bn{{0SyH#O-3eF{Z?8z9M+6^$fN19$RO?>^U{GsVbp( z1`PPQDVld5ub59U^j+-@dy2K6Hr4$CjHhIeL1vqrPfOUSRvSZNPQL`aYBY}SJSud@ z?D@_Sw3jpPH{`;io?`dQC(1~6NqnN+Z^OYnOwb-hgt&5ev_RlShV^Y=Pn5jYPVya7z!)6{&W^!#N1s z%Sr2o5~rsB-3wOZEFbu#c=L*19ZS)t3p8bx7j%p9yasH3jh`)H8AL%!-(R9Dc z%{zDjsvZ7K#12-K;r-mA~aeF2QmUl&f1t zE3fAcE{ow?!ZAt&W3fmG@+;mL)D0-DkV3O+ni zzt)ZC0qY({CZ6$gSk4$*vnt2D-d}o1KCqjpp-wSWG|+f_fBFC*(&xXy!YH-0RuqcQ zIy(GH+_63xWJSiHo^H|>o>y96tD?A->wN8V`C36 zknzdLK1C|Zx_95-Zu0iVB2E1jL47(UEf(_Zwvoi{Z)-LUY9ZusiTD`~El+%vFEY9| z0^x+T-Z=EyR*JRxlDwB)E+Etl4D@J%Q#xv^t&ZXkRAUqYtF=M9yH!R!79+v*h*lJH ztts)T&)1nvOP~a#Bau1HaNz)V1PB)iwz*cc_ZtMRL%>qriS`+AcP}f zA(?uPzRqfXw$}nAJUP#UE4rf#7B)vM7uj&)>`SFT-bfNU6$Gw~GLi>64zixu<&yJ` zng};tcH*Vv!Rs7~n}-xc4BL}1{_nd0(y>=-cxkhS;b;__ze^bQ&n6_43t8AYIn`jI zpvAidW^Tufgvu>NGXSE|JLzGAoEFXzj83-VO(Ga!a;rB{i;pXW_P zdWO{}zYB{x1gYJUF`>hsmWjj(r2HBtzoup^cT!r&`hNTqnVRQk65Y9c8>Yvz^Oi^V zj&y^ZTmXyY!$oSge}k;(MM&hVZ2n8TQxlZgz79cvG4#X0L;w`|gbSUB(@`f?k_A46 z*vKGIGLeHCF2|$i6CEh=T${DMFKB*!EQl&89j3PeIhWn>-~pW{>5O^0lG+gn(m`J8 zwCOksrL}!=y}8A^_L}6Kg6ro($Tc67uzce9A7n~*1s8%S+I-#+z|m;5Y#iJa7F+?W zzV#XtG$g&eRtClZ&fF2ZAwnixa||3C+9rAL2E2ZZ%v)KdCmX#n9jrfj^r;u*i!E0X z&ccxn3=F6Dezf=GhMejNxfWJRD59og{j|9fFh5Wfx=={Tlx#g!=dU}-nXtrYHJ0OZ z-?nH=tFus#N>kTwihL$Q4a5S87_Q+JCBG9=%SBunUqgyL_{ z>HRCe1N{B<>!Lqx3RT4Hg}o(=6h!#Q;Rp_d;h=u}@{<_Rn(yephxL5g;Lw{>Dki7{ z9KxG)saov0>5&B zzoFHX%QN2}U-d2!&*%vR;(#lC92xW{UJH$&J;DL-{U3p@SWIa)34Ua!&#`h`rw%u3 zVN~4ToKhdhg#7;Y&uv{Pq|}In843&0jc^6NE!p!gRie>Khi0g&7s72cJlQW!Olp^p zllf`vTHqYKGqNy{%1zpT2~nYHz9EZgd@7xn~)x?iYQp z{7<^_PQUF@I44HMT-qx>8oqZ`;hP+ARKGPZjWWTcmQ?4_EZ4Arp7+*SJ-}U2k~Pe^ z-tVRG-2LVhieD-02q2_=g2*X!>(OUJWaMp_@!m*YW}_P9bKlDZS?y4XCk%O1nq5?! zm>Zmr8`LW6dx(Kan3+p%0ymi2YCvuEgNbY;ICbH)p$Q+#i^-QRB zo-%!D#$~l+Z@?Q<`RGKskyK@xzJK4!kxxrOoG^n1b9T54=+alFXg8Fq7b%{qs?CZw z_rGK-Fv@pwCdkbp1L`Y*X{Y9C)v8gA%L;IZr$B$oO9M}WxDV-bEqlLfbFeB!1-0ky z!r&l((-6%C%h5QGG|%F`hMvBetYY;jan?l{HWff?|Kt+fEeMHGPduDaT*$V|kAlWM zcjR;~6-O=;+KxzkS$G2Dtu%PO0>{iRe3pB{-Re8Uk#&7`*6L}1nWE$DWqUTTY4Ex1 z=qG-5am}kymqgHS9NoUt728!&ZKXQn-Uv?K+PiO~+NGqneEWVk{Bl@b=y8n}3m1ls zY^w&8CRBlK8?8c~bksnEE^O#*+tPfBP2XE>IIa$hTOAL_ERWSNLx=4I>>s{KB5$=2 za}{aM384;&eCOy53a06_%!a;iU$(o?w@ZtS-Zhb`1*lcMn`AexM{e()as}BZLV3;F zoBb@ZU(X!xmNf-Z{dJ?9ZmTPzR&G<&F|#^c<~T=?*pXh~NWPPTX%-2$>w2QCh@9EN zreJ0G1aPiv_~0Hha(=R>j-KL{D}RSD88lfUb=JRXG?XT~$%2 zz;_=%1%$(RlJ+z0GEUTKTJ9A8R$7>SYHmKJra8mUfv&ly_xf3K%eOPKJvRsrr7>7` zpC@j6E2htNweqxB8_Ty_NhGla&Nluu?zZVR?y6S#|L$liLDczXLBAaOsmmt2!lw2B zPI>i+FI0h5;;Z#cf~U9Jf_M|%2;AHrP4^@yrh`;kM#JHG{zJ;UXRNJR!9!k1F4j^q zl*R3na&eVQA$N)Iu1hsf#Z1af%#?z!GC^#c;rF_XGyfhgq4~7ECJNykctW`kvp{X~ zBoAJdl$odURs9*0WmSH{cFuXitLOo z%EB}}T03yk+LGmS;8{+$$`vi+uAQES(!J8oa-6RnsP!C0=O}G~O$9-Ty@VDoB@&zY z;uR$Jp&lama{*Q=wpJZLCePXPh zk}K|D?q1II)y+=3DOVc%XC79yJ8o_}xf8wm;4n;h0ChOw-?#n&1PJ#((fHW5d>DGfzNd3n{O*&;X*({Bn9ym5%z>#9MFp;S7}Y69_FR* zAwb%ze%`z;ztRk|L~+_ zi7x&6>|7yL*j+EBd-$ZP|IUB3#O_eRheYNJ;tCp2{V}58T{pZqB>$CH$qUb>2c0-! zq2ubOPFiH7PF(*gf>3Te45bfFy2ron5%|h6>SvF4!`-mw(7{Y#_6Nd5Yl79XNQ*5B#adC*jOw^c zh>@94XA6Oz5PKHyFmWCcsOmiKyCiiLhD-2wd~qQ7BC82!v&Yojw-m>wkFbN6rxBJvA+C`{Lt>!mh zNqD)rE$@z`k|jYn{*AM=hKAKtuOgp8K&nVS)!5MTbzO6ehogQWw$05!iUEN z`ARe%MKwCtkFdgT!4cmFMky-^6F4ez5l5f)n;=}w{t!Aow2dNf_D){Xfdd3QcqCW&7ofh#Ohiz12}!0Tb4Oaw3f0zYW}F?)@{I-<9BXBGL_|> zw1yMW%EO;-I?kY<9ZuoDc$}@bd_!4iS`~^IbA-rqredqTCy(R5aZP)Zy#;iA);^^T9ur<3UXub%Z*{$Alc0A9TFSyh(YTACYQ@wFWcueX z;}{sy-dsdS4Q9!QV(cW0fT!cM?$+uGqvgF}-P{^Rw`PNb9SV zG8>_jZ|gV2^MhdI-1_+ti`tIRV^CeoEp$riI3^|eM`IzrrcJ%v%8kG%tcQTGM7Iec z2<|oQE^GGY-l~zTn5st#U5HE%bI54GmGdbLhjQO|?8~c&hk7%u8dev**D{;rlA{-5 zhbzHaKytX6E%4kIZP17%oK-jga4um?)e=jn5{UDjiB`g;kF;G`Z?9CQ6hk@~3jblv z|LnD_I;^vPp{I+J+lfjk8@n_JsE3y{Vb)l8#zgN4t3CA49(V^tb=|gHHyRyX^o#y10a0=d6%dOnLv0|F4Z1^#5EU^HMNONx%SL^qm)3byN|80G3ltp~S= zhgS}r6tlmW-RdhR8lLZOytq7B+~mBg=zKHAaX>{}#*xS>a8`E4oquzmtHW+Dv0@%U zU$FEDv_WIGei@Jv(o9~K8` zKW7TD3ye+|D@{%pPnxhOd?yH`Z*TFoY$%hA-vWWW=_~&f_&GE~3*tSAfQisPO5sVY z<{DSa$vVFchj>oiOLpTdYwn9VKlK4DEA?N=(rJKe^mF)t_YL}Ebld@}-L4s{(P^oM z+oe}7cKpVZ-AdY*H!90+WYLbKf!ks$3mM=j#f1pl7}R$E>ZtFH6&7jG$fuFVYN1j8 z8@|E&qleZ2GQ!Vpe`3IBSmy_0`$%}gv3i3fbaw+~yZbw{)X7yNzU)U_Uuui|={ptO zB&xn5K{6FLk+$9Z2b`21;|mmH5x%*8T7TK2!O>c97V0 znhLEa?AE=G{@z{q6&f(aqkx0FhE$}%CkNmkE!ap^YejvZB%WSYS@#*2GjQ@iO!e|f z7}I|{GhxQ>TqfKT<#Qn%&8eYaG0jTLn+~j8T6lnnK=s!dBZm;Vsp9gOb}q#a|BH&R z4vK=0+TEqQy9EVlL_%_DR9Zs1yQO3476IuF=|;L+8l<~hdg+BF?(*L6&fM=WW|(2v zJ->6F^E{_A2zUrAaE>=z1We&j{A!5sU!<=up@hiWTy;sE4^$S5n!3WH>*#&M23Y;h z%%jNbVTOE+(0XZoUGSkdMa-mWivxjcQDe{ zV_#P-P3bS$^ScB9^9i~dhv|}AniSLzdvuvHJWJ%=L1un^KN=T?Z)FC@YIR1`En-0Y zf4(GPF-7*bkIr#s5M1XCUVVbY)eP?Glo-$1tui26uCd>2RT$E1w7N*jy64fnsxiRY zWznjl3V2fmI|P~NN0^F)r5jbNS7_nZQiJBD^(~R-Ke8L7TitM4tawy)AntlIj1_GO zmF-Kevgy}Z@8_-@VSXU$a=&FzARj$&`E=_UECaeCp$SGAsmSgJZY zs5r>t2vDv+FXc#SQDRA4;tI8yMc6DOUv@fcnJ@nz*CLZPfGAUGVFFwWFNdR~u(_rwR(3)gPFdici3G!-Uv<&;qWyQ|N{-KD35a;0C=<(j0_s!#R z0nv6T#EEc@i6Kt#Z>GvYqF5G(*ALT`wz69=4_uLC&WivgyS&c~9nVQc%ro<4NDu~03CNXf(Sc}aO z^v9hviKcD1R~wEKN#0DEn(_cB@^Sjal+9?5(OeL7^j{Enumkcg9nkCnv|gnUO`FpX zb@2tNt1%e>QOpS8Y^h75SfPNStK4(M9eRfKIZ2*ZMbwTTqI`0fb!3F{1m|n4yao$X z8ln>sf~^feesM-i6}~^E)WHxummIZvCM-v^U0NmI)d?3oS4Xw6FqOS4tWuJi`J0Kt zkBYHXkbo1x^Y==OuejvyovslY?t|V{iqSHbNDr@Aq!@jVX(E#=Hp#Ey*-msjUXIGv zOq1#KxNW`L3?#vmSDAe+wv?G&WjuY~*r1z~d85toA%jW;f~a%7_A!#VQk$4Dn9DPC z&glL}GI?_QaQP{@i^Y8Dh#WJsOWJ2Yi!&|UUEjI~=hMI0&pF3g`99&=v6TK_lL1CEAnoJ(t?Y=w@A2i2;ZT)n{}( z-lUzrkqE-|{q0tMH|Qp*a;n3s24GmmM%Ug*ZX1a?YdnU#zv{e>{@jLKK5uhlQDmD& z-G%Q}7tPIT;qD6OnsJ33ji+gsEF3AxTccX5KP8LifrsK`e@EdqA5mq7`jnKqVu98! z*L^1o!GI{C#rCBVkRl{%k2|U1TcAQqMfPaJ81uX2O0~vzlJstG{7L6cZ3%vkX2Nol z)AIAztRA%@hFQh?^DSs5-EdU7eJ+yw6)4nluCJauT~BMTMaKi>vb2PV$15pLu%v(v zrJD!i=7HcO4E&6)lGhm*VYM5HtpO4{FP%tGu_ny2OL3MN#}d%xqC+=g;xf|vYbUky zc}lRsrS+@(DrQ$0%(Q|mLlzOzZ85rD^u#3(Vz_P&eD{xl$M?&*pZ!CKIkr4sagO_f^*Ooe%(I~iknD4s%xax>x@m#y9h&BK&sp2Gp2+VLy6yw}jFr;C!g$7Ciz$ zFfo1U8e1D8SnXCy?!5vHG`Y@IJuCyW@47Ucb~@Jzu}N!U@kq}*x^w|H)jTVHW|e{b zX_Py!?B8=3MMDP8^ZGNWj>vxSswT1CwXu=<&8--Xw9y{XKSakIulFGWp1P;c6eZvz7#$h%pNH}XZ1ejx8;Q4;Sxqs)jpdO+%lWdM`Cvc?wWaFUV%Lu)Q!&U&gT zLYy7xtD2>8yW24I7^!gDq71xuD6g_yhajxgmJ~3fWx<>GF+^-iS>l*du7Bi+DO6g5 z(J?ZRvO#`-otm|4v-(Y4srkP>d>deN&PC1Y5-3dmxsrsENLU4+MWCYw=yidFRsHbCw3xPRFp+Inn_rv8ZIjm z`n_5iQ-)Hf`Ep#(pnOw^opcAU3&5kdfe6IhRYs@%4W|(N^lCJFuex_F0+`=FY$f;< zzmlxmb&P|nYjR+R<3CB)c2$4VA)yM6-Lwcsrilr0u`0xM2Y!U_gA`p*zE@B&tS9)EO!+4Kn1nM1=;)`;YbQn%M(!AVtg*A(qFO*<(oQb{_Se75_^k zQF0pY@NJ{Xcq-H?jlBx)prui?;=HvmWaQk8p07)y&#tcI{t&bny^t-oDH`5Dy`r{>WN~!Tt^Js{9iI;N8 z$?I&FLo>KydyZwJ6^#$DX5cNytkGdEw|&bT^Cs=VS23u1^=K*0a>9nlU|ypxaRm97 z>DL*|YoU)<^~oMGRF6sS&3416=?M01O4k0k?X93P^L zi~x2r=SE3s^=8#&7ltEid}0KV-{&b3>t_d0Y0R|_k>o4UP@hwHq~hA(yi5m2=!AHq z*OY|TtqPrXUjuRdJ$>Zx?T1NJmj3i6LSLqP!ydHvU)ZoLa8LFI8LpP^ueD_A#F`Ca z2avvPrX<_Oqkq#AHRe{&o5jp>4_MXbc%d%^;I|k**+O!0^azPQ5(#vhZ|y(8s$I5h zqR%|ew@J&<7NSWH-C(mV%qY7U#4#K& zA`m6yGr*Q(#3=+Hs6BJZZ9t*ina@P?ov#ny{FqCC6rBP!J!#Z2%9i6$lE%<}N4i#h zB~R$SJ3jHf>~G>TeMiq%x8H8_R_0yf?VV!TWA>lE4WJ|?w|)=c`}tST|Aet5=Vi#v z9EJY6W08@^^7X2@sdz8!a53od!`OktW&qA!6u7$v{W~u(qrB{tVy0uqdA7S1JZ2;M z1ui!-&qoIfbOkmjYQ3qk@iGZI@vCEPHIle1P{+8%iimYD9mkHVr-*Gdu8ZCn^!5J< zoP3nW`_xgm2eh8s@%;@Ex{Z7I>E28WGBemWmp+vnaY>+v#O#CM2_1&Q;1;b+d6XL<&8Lw zFGa&0AAubvVK?Uya$~<416jIAKkamX1d3*s1boK4rfSU_Z)=}fup*ex(9hlSDrU&) z>>ccTWp|f(iVK%wl$kPq#{Le~2+#>sw{_sf&|dB21gg+4R5v@>=~wZpf0TuH08suV(TUhKUfR;}= z%)N;W__dI!qrGwUl53uad91RdvUr!0ZC>@VC8V-6agP-KVgE>ga)Z|~0uNYW{mxxI`}B+MLVwD$c$|%1IM@J1K)SzPqj;y?WcN&2H2sJ= z{j%J{uD1%eYf<C-GjQnKy9_>W*JGwkk< z08z`RS5A?(rOaqS=RI@!MH111jn4aN6KsUcE6CwZN>uo0-9rywXC|pL0iyDMH}SqI zEMx}u8@>k6GV&x^TEP_qi4g)@e$ueW^_Qb>8TF z$#Qcya2BC6n%81usjtj!&q;~^B?_D@VL<+vMDEzT7M^4>Ah_!qK_1|` zv>elL0Zg}9efi?`+6jVOYs3ZW~jSBcN@nQ#`ZtW@VP5p zQW1W&*7o(s9)Oz~wrCUSkn^L$vD4`@amTaohT^bmC$nd~!4)A#S6G)^JdBUDv6Y5Z zGb9Y_(xoZ38zmyG z&06~Y)tS?}@33zZB}n03Ve8b7L#p=HW-QcVy8U*?0w|NHral(?nX6F^shK`xd1i)m!W#y?V&{xKQ!Ku*edyKM@vgcz7&Ttqcw1w@#hY^AX`l{!QAXtp|UwcX!mjq=_BZIF(}_b4a=3}Q;s z7s7g5mg#MBeNt?S6f;BH`HS-kg!G73$3ed9j%(nk;+W69w|4yBowXtTiq`4l8b6uGt<(q zq&`v`~W$b-HdVHZtXR;^x%jYbs0ic$|OU;nP^6d9LW4$SG|Gew1LPuRG$r zHJYW}Y`zCO;wzoMW;1bEL_p5zZ~V2I00yX)BBA-yxjhaI`!3#i!0phtPyhBD^}!H< z_V;RItV|SL-w~e>Ik&~-3`-;5{%b)R8;et?*=KD3>SX9e$iGQrUxsq~F~vQy&h4*| z?LmGd2Ey9`D$2_-wURFp*0zsnTzt}AlPB#agksR0Zju=P3TV_gKAHO{P;)E{%+PT7rj+?lH|AqfRa0=EYV$mfj zeQoKtY`#(tkFz+(=2+Ky)iPaH?~(y%~i||YGc#A&^V;MhZ3$Pz6~vg?*EX1j@21Yqjjf57Uy~9yRHRve z|LhJ6{?zH*25crS$}hm6UnitgJG>^JEem!|V6E8C_WcS*BeW(?57X5T_>P&NG$s zU@0{I#*-n-LdOHb$_u3PET29yH}v;ex7~DZy-%`6E1b<=my#n_bm{OLnX?=$ZTx3e zc2wWRnPqtTu0-kma$#ZeH#Pf-A+$ES`Pnf^Ng(*5ogP;iH^BB!239wPD8;gYE?CR#L(Gj0QHXz z|BG#-)hX)D{{%)g$ve5{BoG%gH~e?XMB)R@Eqme3vo+qOKAlZmxtR#CWPOcR^fah>-

yDmGq{TKJf8C}$kDwCkd6IOkF&mJ!iuePNc^ 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 + + + + + + + + + +planetarypy - SPICE with planetarypy HOWTO + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

SPICE with planetarypy HOWTO

+
+ +
+
+ Several useful SPICE related HOWTOs posssible to do with planetarypy +
+
+ + +
+ + + + +
+ + + +
+ + + +
+

Surface calculations on the Moon

+
+
from astropy import units as u
+from numpy.linalg import norm
+
+from planetarypy.spice.spicer import MoonSpicer, MarsSpicer
+
+
+
moon = MoonSpicer("2022-02-22")
+
+
+
moon.time.isoformat()
+
+
'2022-02-22T00:00:00'
+
+
+
+
moon.solar_constant
+
+

\(1388.4482 \; \mathrm{\frac{W}{m^{2}}}\)

+
+
+
+
moon.set_spoint_by(lat=0, lon=0)
+
+
+
moon.aspect = 180
+moon.tilt = 30
+
+
+
moon.F_flat
+
+

\(497.68762 \; \mathrm{\frac{W}{m^{2}}}\)

+
+
+
+
moon.F_aspect
+
+

\(449.48514 \; \mathrm{\frac{W}{m^{2}}}\)

+
+
+
+
moon.F_tilt
+
+

\(412.53511 \; \mathrm{\frac{W}{m^{2}}}\)

+
+
+
+
moon.subsolar
+
+
array([  622.78676959, -1621.28270346,   -46.23629622])
+
+
+
+
moon.local_soltime
+
+
'16:35:58'
+
+
+
+
# MoonSpicer returns km (as all calculations in SPICE do)
+# use astropy.units to convert to other values
+norm(moon.body_to_object("EARTH")[0]) * u.km
+
+

\(375365.92 \; \mathrm{km}\)

+
+
+
+
(norm(moon.body_to_object("MARS")[0]) * u.km).to(u.AU)
+
+

\(2.0379563 \; \mathrm{AU}\)

+
+
+
+
mars = MarsSpicer()
+
+
+
mars.utc
+
+
'2023-06-27T18:37:50.876055'
+
+
+
+
mars.l_s
+
+
83.31658188802474
+
+
+
+
mars.goto('inca')
+
+
+
mars.spoint
+
+
(220.09830399469547, -440.60853011059214, -3340.5081261541495)
+
+
+
+
mars.aspect=180
+mars.tilt=30
+
+
+
mars.F_flat
+
+

\(0 \; \mathrm{\frac{W}{m^{2}}}\)

+
+
+
+
mars.F_aspect
+
+

\(0 \; \mathrm{\frac{W}{m^{2}}}\)

+
+
+
+
mars.set_spoint_by(lat=0, lon=0)
+
+
+
mars.F_flat
+
+

\(339.2043 \; \mathrm{\frac{W}{m^{2}}}\)

+
+
+
+
mars.F_tilt
+
+

\(397.92501 \; \mathrm{\frac{W}{m^{2}}}\)

+
+
+ + +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/tutorials/tutorial.html b/tutorials/tutorial.html new file mode 100644 index 0000000..a0b764d --- /dev/null +++ b/tutorials/tutorial.html @@ -0,0 +1,1919 @@ + + + + + + + + + +planetarypy - Tutorial + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ +
+ + +
+ + + +
+ +
+
+

Tutorial

+
+ + + +
+ + + + +
+ + + +
+ + + +
+
from planetarypy.pds.apps import find_indexes, get_index, find_instruments
+
+
+
find_instruments?
+
+
+
Signature: find_instruments(mission: str) -> list
+Docstring: Find existing instruments for a mission.
+File:      ~/Dropbox/src/nbplanetary/planetarypy/pds/apps.py
+Type:      function
+
+
+
+
+
find_instruments("mro")
+
+
['hirise', 'ctx']
+
+
+

Now, seeing that the CTX instrument is supported, one could ask what index files (= catalogs) are available, using the dotted code for mission.instrument:

+
+
find_indexes("mro.ctx")
+
+
['edr']
+
+
+

We only have one index file for EDR data. Let’s get it, using the now 3-segments dot-code (it returns a pandas Dataframe):

+
+
index = get_index('mro.ctx.edr', refresh=False)
+index.head()
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDFILE_SPECIFICATION_NAMEORIGINAL_PRODUCT_IDPRODUCT_IDIMAGE_TIMEINSTRUMENT_IDINSTRUMENT_MODE_IDLINE_SAMPLESLINESSPATIAL_SUMMING...SUB_SOLAR_LATITUDESUB_SPACECRAFT_LONGITUDESUB_SPACECRAFT_LATITUDESOLAR_DISTANCESOLAR_LONGITUDELOCAL_TIMEIMAGE_SKEW_ANGLERATIONALE_DESCDATA_QUALITY_DESCORBIT_NUMBER
0MROX_0001DATA/CRU_000001_9999_XN_99N999W.IMG4A_04_0001000400CRU_000001_9999_XN_99N999W2005-08-30 15:40:21.549CTXNIFL505610241...0.00.00.00.0278.8910.160.0Instrument checkout image of spaceOK-4242
1MROX_0001DATA/CRU_000002_9999_XN_99N999W.IMG4A_04_0001000500CRU_000002_9999_XN_99N999W2005-09-08 15:59:45.313CTXNIFL5056153601...0.00.00.00.0284.484.60.0Calibration image of the MoonOK-4126
2MROX_0001DATA/CRU_000003_9999_XN_99N999W.IMG4A_04_0001000600CRU_000003_9999_XN_99N999W2005-09-08 16:03:37.927CTXNIFL505620481...0.00.00.00.0284.484.660.0Calibration image of Omega Centauri (globular ...OK-4126
3MROX_0001DATA/CRU_000004_9999_XN_99N999W.IMG4A_04_0001000700CRU_000004_9999_XN_99N999W2005-09-08 16:08:23.841CTXNIFL505620481...0.00.00.00.0284.484.740.0Calibration image of Omega Centauri (globular ...OK-4126
4MROX_0001DATA/CRU_000005_9999_XN_99N999W.IMG4A_04_0001000800CRU_000005_9999_XN_99N999W2005-09-08 16:11:18.649CTXNIFL5056215041...0.00.00.00.0284.484.790.0Calibration image of the MoonOK-4126
+ +

5 rows × 51 columns

+
+
+
+
+

You might have ssen, that planetarypy realized that the existing index on my disk was outdated and proceeded to get an updated one.

+

The warning is about badly formatted data on the PDS for which planetarypy had to force path names to the correct letter case. This is not something we can influence, but we reported the issue at the PDS, and here, we just let the user know, that we fudged around that issue.

+

Note that the catalog ascii times have been converted to proper datetime objects, using the utility functions in planetarypy.utils. This means that you can use these times to create proper plots over time in case you are interested in catalog statistics.

+
+
index.IMAGE_TIME
+
+
0        2005-08-30 15:40:21.549
+1        2005-09-08 15:59:45.313
+2        2005-09-08 16:03:37.927
+3        2005-09-08 16:08:23.841
+4        2005-09-08 16:11:18.649
+                   ...          
+142363   2023-03-01 00:01:37.834
+142364   2023-03-01 00:15:17.076
+142365   2023-03-01 00:19:04.486
+142366   2023-03-01 00:29:24.818
+142367   2023-03-01 00:43:08.662
+Name: IMAGE_TIME, Length: 142368, dtype: datetime64[ns]
+
+
+

Using standard pandas operations, we can now filte the data down, and identify a data product we are interested in:

+
+
index.columns
+
+
Index(['VOLUME_ID', 'FILE_SPECIFICATION_NAME', 'ORIGINAL_PRODUCT_ID',
+       'PRODUCT_ID', 'IMAGE_TIME', 'INSTRUMENT_ID', 'INSTRUMENT_MODE_ID',
+       'LINE_SAMPLES', 'LINES', 'SPATIAL_SUMMING', 'SCALED_PIXEL_WIDTH',
+       'PIXEL_ASPECT_RATIO', 'EMISSION_ANGLE', 'INCIDENCE_ANGLE',
+       'PHASE_ANGLE', 'CENTER_LONGITUDE', 'CENTER_LATITUDE',
+       'UPPER_LEFT_LONGITUDE', 'UPPER_LEFT_LATITUDE', 'UPPER_RIGHT_LONGITUDE',
+       'UPPER_RIGHT_LATITUDE', 'LOWER_LEFT_LONGITUDE', 'LOWER_LEFT_LATITUDE',
+       'LOWER_RIGHT_LONGITUDE', 'LOWER_RIGHT_LATITUDE', 'MISSION_PHASE_NAME',
+       'TARGET_NAME', 'SPACECRAFT_CLOCK_START_COUNT',
+       'FOCAL_PLANE_TEMPERATURE', 'LINE_EXPOSURE_DURATION', 'OFFSET_MODE_ID',
+       'SAMPLE_FIRST_PIXEL', 'SCALED_IMAGE_WIDTH', 'SCALED_IMAGE_HEIGHT',
+       'SPACECRAFT_ALTITUDE', 'TARGET_CENTER_DISTANCE', 'SLANT_DISTANCE',
+       'USAGE_NOTE', 'NORTH_AZIMUTH', 'SUB_SOLAR_AZIMUTH',
+       'SUB_SOLAR_LONGITUDE', 'SUB_SOLAR_LATITUDE', 'SUB_SPACECRAFT_LONGITUDE',
+       'SUB_SPACECRAFT_LATITUDE', 'SOLAR_DISTANCE', 'SOLAR_LONGITUDE',
+       'LOCAL_TIME', 'IMAGE_SKEW_ANGLE', 'RATIONALE_DESC', 'DATA_QUALITY_DESC',
+       'ORBIT_NUMBER'],
+      dtype='object')
+
+
+
+
index.EMISSION_ANGLE.describe()
+
+
count     142368.0
+mean      4.396005
+std      18.999974
+min            0.0
+25%            0.1
+50%           1.56
+75%           5.94
+max          999.9
+Name: EMISSION_ANGLE, dtype: Float64
+
+
+
+
index.LOCAL_TIME.describe()
+
+
count     142368.0
+mean     15.055919
+std       1.427996
+min            0.0
+25%          14.65
+50%          15.12
+75%          15.53
+max          23.99
+Name: LOCAL_TIME, dtype: Float64
+
+
+
+
angle_filter = index.EMISSION_ANGLE < 1.0
+
+

Let’s also calculate a mean latitude and longitude instead of the image corners, for rough location filtering. As a habit, we recommend to assign lower case letters to column names that we add on top of the PDS ones:

+
+
index = index.assign(
+    lat_mean=(
+        index.UPPER_LEFT_LATITUDE
+        + index.UPPER_RIGHT_LATITUDE
+        + index.LOWER_LEFT_LATITUDE
+        + index.LOWER_RIGHT_LATITUDE) /
+    4)
+
+
+
index = index.assign(
+    lon_mean=(
+        index.UPPER_LEFT_LONGITUDE
+        + index.UPPER_RIGHT_LONGITUDE
+        + index.LOWER_LEFT_LONGITUDE
+        + index.LOWER_RIGHT_LONGITUDE) /
+    4)
+
+
+
index.info()
+
+
<class 'pandas.core.frame.DataFrame'>
+RangeIndex: 142368 entries, 0 to 142367
+Data columns (total 53 columns):
+ #   Column                        Non-Null Count   Dtype         
+---  ------                        --------------   -----         
+ 0   VOLUME_ID                     142368 non-null  string        
+ 1   FILE_SPECIFICATION_NAME       142368 non-null  string        
+ 2   ORIGINAL_PRODUCT_ID           142368 non-null  string        
+ 3   PRODUCT_ID                    142368 non-null  string        
+ 4   IMAGE_TIME                    142368 non-null  datetime64[ns]
+ 5   INSTRUMENT_ID                 142368 non-null  string        
+ 6   INSTRUMENT_MODE_ID            142368 non-null  string        
+ 7   LINE_SAMPLES                  142368 non-null  Int64         
+ 8   LINES                         142368 non-null  Int64         
+ 9   SPATIAL_SUMMING               142368 non-null  Int64         
+ 10  SCALED_PIXEL_WIDTH            142368 non-null  Float64       
+ 11  PIXEL_ASPECT_RATIO            142368 non-null  Float64       
+ 12  EMISSION_ANGLE                142368 non-null  Float64       
+ 13  INCIDENCE_ANGLE               142368 non-null  Float64       
+ 14  PHASE_ANGLE                   142368 non-null  Float64       
+ 15  CENTER_LONGITUDE              142368 non-null  Float64       
+ 16  CENTER_LATITUDE               142368 non-null  Float64       
+ 17  UPPER_LEFT_LONGITUDE          142368 non-null  Float64       
+ 18  UPPER_LEFT_LATITUDE           142368 non-null  Float64       
+ 19  UPPER_RIGHT_LONGITUDE         142368 non-null  Float64       
+ 20  UPPER_RIGHT_LATITUDE          142368 non-null  Float64       
+ 21  LOWER_LEFT_LONGITUDE          142368 non-null  Float64       
+ 22  LOWER_LEFT_LATITUDE           142368 non-null  Float64       
+ 23  LOWER_RIGHT_LONGITUDE         142368 non-null  Float64       
+ 24  LOWER_RIGHT_LATITUDE          142368 non-null  Float64       
+ 25  MISSION_PHASE_NAME            142368 non-null  string        
+ 26  TARGET_NAME                   142368 non-null  string        
+ 27  SPACECRAFT_CLOCK_START_COUNT  142368 non-null  string        
+ 28  FOCAL_PLANE_TEMPERATURE       142368 non-null  Float64       
+ 29  LINE_EXPOSURE_DURATION        142368 non-null  Float64       
+ 30  OFFSET_MODE_ID                142368 non-null  string        
+ 31  SAMPLE_FIRST_PIXEL            142368 non-null  Int64         
+ 32  SCALED_IMAGE_WIDTH            142368 non-null  Float64       
+ 33  SCALED_IMAGE_HEIGHT           142368 non-null  Float64       
+ 34  SPACECRAFT_ALTITUDE           142368 non-null  Float64       
+ 35  TARGET_CENTER_DISTANCE        142368 non-null  Float64       
+ 36  SLANT_DISTANCE                142368 non-null  Float64       
+ 37  USAGE_NOTE                    142368 non-null  string        
+ 38  NORTH_AZIMUTH                 142368 non-null  Float64       
+ 39  SUB_SOLAR_AZIMUTH             142368 non-null  Float64       
+ 40  SUB_SOLAR_LONGITUDE           142368 non-null  Float64       
+ 41  SUB_SOLAR_LATITUDE            142368 non-null  Float64       
+ 42  SUB_SPACECRAFT_LONGITUDE      142368 non-null  Float64       
+ 43  SUB_SPACECRAFT_LATITUDE       142368 non-null  Float64       
+ 44  SOLAR_DISTANCE                142368 non-null  Float64       
+ 45  SOLAR_LONGITUDE               142368 non-null  Float64       
+ 46  LOCAL_TIME                    142368 non-null  Float64       
+ 47  IMAGE_SKEW_ANGLE              142368 non-null  Float64       
+ 48  RATIONALE_DESC                142368 non-null  string        
+ 49  DATA_QUALITY_DESC             142368 non-null  string        
+ 50  ORBIT_NUMBER                  142368 non-null  Int64         
+ 51  lat_mean                      142368 non-null  Float64       
+ 52  lon_mean                      142368 non-null  Float64       
+dtypes: Float64(34), Int64(5), datetime64[ns](1), string(13)
+memory usage: 62.9 MB
+
+
+
+
lat_filter = index.lat_mean.between(-80,-60)
+lon_filter = index.lon_mean.between(0, 10)
+
+
+
index[angle_filter & lat_filter & lon_filter]
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VOLUME_IDFILE_SPECIFICATION_NAMEORIGINAL_PRODUCT_IDPRODUCT_IDIMAGE_TIMEINSTRUMENT_IDINSTRUMENT_MODE_IDLINE_SAMPLESLINESSPATIAL_SUMMING...SUB_SPACECRAFT_LATITUDESOLAR_DISTANCESOLAR_LONGITUDELOCAL_TIMEIMAGE_SKEW_ANGLERATIONALE_DESCDATA_QUALITY_DESCORBIT_NUMBERlat_meanlon_mean
1267MROX_0035DATA/P03_002074_1155_XN_64S004W.IMG4A_04_1008005C00P03_002074_1155_XN_64S004W2007-01-05 01:02:50.418CTXNIFL5056122881...-64.59225779573.9161.5316.0290.1Dunes in Wegener Crater in MOC R15-01815OK2074-64.594.61
4551MROX_0165DATA/P09_004738_1020_XN_78S008W.IMG4A_04_1014016300P09_004738_1020_XN_78S008W2007-07-31 14:55:12.379CTXNIFL5056522241...-77.97210058626.6286.9315.3690.4South polar landformsOK4738-77.9655.9325
4677MROX_0173DATA/P10_004883_1020_XN_78S005W.IMG4A_04_1016007800P10_004883_1020_XN_78S005W2007-08-11 22:05:40.494CTXNIFL5056522241...-78.09211455781.6293.8215.2790.4South polar seasonal cap edgeOK4883-78.084.57
5184MROX_0197DATA/P11_005252_1199_XI_60S008W.IMG4A_04_101900A800P11_005252_1199_XI_60S008W2007-09-09 16:17:03.275CTXITL5056143361...-60.18215826377.3310.9214.5890.1South mid- to high-latitude craterOK5252-60.18758.6425
5395MROX_0209DATA/P11_005384_1066_XN_73S007W.IMG4A_04_1018017C00P11_005384_1066_XN_73S007W2007-09-19 23:03:52.412CTXNIFL5056358401...-73.48217613174.8316.8514.8290.3Sisyphi CaviOK5384-73.487.05
..................................................................
133106MROX_4264DATA/U09_074575_1037_XN_76S005W.IMG4A_04_117A02AC00U09_074575_1037_XN_76S005W2022-06-24 05:06:01.401CTXNIFL5056522241...-76.26206646214.2252.8915.9690.4Sisyphi Cavi regionOK74575-76.25754.98
133926MROX_4298DATA/U10_074878_1161_XN_63S005W.IMG4A_04_117C022300U10_074878_1161_XN_63S005W2022-07-17 19:55:57.184CTXNIFL2528245761...-63.93207381603.7267.8415.3590.2Southern highlandsOK74878-63.945.53
134438MROX_4315DATA/U10_075023_1075_XN_72S001W.IMG4A_04_117C042B00U10_075023_1075_XN_72S001W2022-07-29 03:04:41.315CTXNIFL505671681...-72.61208145471.6274.9415.4190.1Ride-along with HiRISEOK75023-72.62751.005
135612MROX_4352DATA/U12_075498_1055_XN_74S006W.IMG4A_04_1180007200U12_075498_1055_XN_74S006W2022-09-04 03:17:19.126CTXNIFL505671681...-74.52212296356.7297.6915.1390.1Ride-along with HiRISEOK75498-74.5356.62
136976MROX_4402DATA/U13_076012_1155_XN_64S004W.IMG4A_04_118201BB00U13_076012_1155_XN_64S004W2022-10-14 04:35:24.111CTXNIFL505671681...-64.62218924928.8321.0814.7190.1Ride-along with HiRISEOK76012-64.62753.995
+ +

119 rows × 53 columns

+
+
+
+
+

Copying a PRODUCT_ID, we can now automatically download it via the CTX utilities:

+
+
pid = "P03_002074_1155_XN_64S004W"
+
+
+
from planetarypy import ctx
+
+

Above could issue a warning that is about not finding an ISIS installation, which is required for SOME of this library’s features. Make sure your current environment has the environment variable ISISROOT and ISISDATA defined, so that planetarypy can find the ISIS tools, in case you want to use functions related to them.

+

Now let’s use the CTX class to access data:

+
+
data = ctx.CTX(pid)
+
+
+
data.download()
+
+
File exists. Use `overwrite=True` to download fresh.
+
+
+

The data was downloaded to a mission- and instrument-based storage folder that was defined the first time you imported planetarypy. You can verify it’s location by looking at the config object:

+
+
from planetarypy.config import config
+
+
+
config.storage_root
+
+
Path('/home/ayek72/mnt/slowdata/planetarypy')
+
+
+

We can now read the data into a multi-dimensional xarray, which supports elaborate indexing via its coordinates.

+
+
data.edr_da
+
+
+ + + + + + + + + + + + + + +
<xarray.DataArray 'P03_002074_1155 EDR' (y: 12288, x: 5056)>
+[62128128 values with dtype=uint8]
+Coordinates:
+  * x        (x) float64 0.5 1.5 2.5 3.5 ... 5.054e+03 5.054e+03 5.056e+03
+  * y        (y) float64 0.5 1.5 2.5 3.5 ... 1.229e+04 1.229e+04 1.229e+04
+Attributes: (12/19)
+    BANDWIDTH:                  
+    CENTER_FILTER_WAVELENGTH:   
+    DATA_SET_ID:                "MRO-M-CTX-2-EDR-L0-V1.0"
+    FILTER_NAME:                
+    INSTRUMENT_ID:              CTX
+    INSTRUMENT_NAME:            "CONTEXT CAMERA"
+    ...                         ...
+    START_TIME:                 2007-01-05T01:02:50.418
+    STOP_TIME:                  2007-01-05T01:03:13.479
+    TARGET_NAME:                MARS
+    _FillValue:                 0
+    scale_factor:               1.0
+    add_offset:                 0.0
+
+
+

But one also get the image data simply as a numpy array:

+
+
data.edr_da.values
+
+
array([[ 9,  9, 10, ...,  8, 10,  8],
+       [ 9,  8, 10, ...,  9, 10,  9],
+       [ 9,  8, 10, ...,  8, 11, 10],
+       ...,
+       [11, 10, 11, ..., 10, 10, 10],
+       [10,  9, 10, ...,  9, 10, 10],
+       [11, 10, 10, ..., 11, 11, 10]], dtype=uint8)
+
+
+

Or plot the image using holoviews and datashader, so that even large images won’t bog down your browser:

+
+
data.plot_edr()
+
+ +
+
+
+
+
+ +
+
+

Note, that the above data is the uncalibrated EDR, so the dynamics of the image seem a little rough. If you have configured the ISIS properly, so that the current Python environment is aware of it (using ISISROOT and ISISDATA env variables), you can calibrate this data yourself now:

+ + + +
+ +
+ + + + + \ No newline at end of file
+ + +